私はこの問題を解決しようとしましたが、混乱しています...私が見つけたコマンドを推論しようとしています。ファイルのエポックタイムスタンプを別の形式に置き換えるにはどうすればよいですか?、しかしまだ受け取ることができません。
私のシステムにはデータベースから値を読み取るコマンドがあります。読み取ることができる値の1つはepoch時間形式です。
[user@Dreadnaught config]# dbviewer -t Isagraf5.Resource._1.CompileDate
1488303650
結果をdateコマンドに手動でコピーすると、正常に動作します。
[user@Dreadnaught config]$ date -d@1488303650
Tue Feb 28 17:40:50 UTC 2017
私はこれを取得したい単一コマンドで(これにより、shスクリプトをロードせずにエイリアスリストに追加できます。)最初のコマンドの結果を2番目のコマンドに移動するためにさまざまな方法を試しましたが、私は不明です。私は何を見逃していますか?
他の参照質問では、dbviwerクエリの結果をdateコマンドにリンクしましたが、実行しませんでした。
[user@Dreadnaught config]$ dbviewer -t Isagraf5.Resource._1.CompileDate | sed 's/^//; s/\([0-9]\{10\}\)/date -d @\1/;s/$//'
date -d @1488303650
[user@Dreadnaught config]$ . dbviewer -t Isagraf5.Resource._1.CompileDate | sed 's/^//; s/\([0-9]\{10\}\)/date -d @\1/;s/$//'
-ash: /usr/bin/dbviewer: line 1: syntax error: unexpected "("
あなたの助けをありがとう。
答え1
alias dbdate='date -d@"$( dbviewer -t Isagraf5.Resource._1.CompileDate )"'
dbdate
これでエイリアスとして使用できます。
date -d@"$( dbviewer -t Isagraf5.Resource._1.CompileDate )"
コマンドが実行され、呼び出され、対応するdbviewer -t Isagraf5.Resource._1.CompileDate
出力date
が@
。
$(...)
コマンドの置換です。に置き換えられます$(...)
。