両方のタイムスタンプの視差を取得したいが、タイムスタンプ変数をシェルでawk
。
シェルコード:
FTIMESTAMP="2015-07-01 12:30:50"
gawk -v FTIMESTAMP=$FTIMESTAMP -v DSECONDS=$DSECONDS -f test.awk /home/abc/TShift.csv
エラーは次のとおりです。
gawk: 12:30:50
gawk: ^ syntax error
エスケープ文字も機能しませんFTIMESTAMP="2015-07-01 12\:30\:50"
。
別のタイムスタンプがありますが、awk
そのタイムスタンプ間の時間差を計算したいと思います。
答え1
シェルが実行されないようにするには、変数を引用する必要があります。分割+グローバル:
gawk -v FTIMESTAMP="$FTIMESTAMP" -v DSECONDS="$DSECONDS" ...
-v var="$shell_var"
コメントでエスケープシーケンスを展開します$shell_var
。またはシェルからENVIRON
。ARGV
$shell_var
awk
答え2
試してみてください
gawk -v FTIMESTAMP="$FTIMESTAMP" -v DSECONDS=$DSECONDS -f test.awk /home/abc/TShift.csv
中に白が入っています。$FTIMESTAMP
または呼び出しシェルから
FTIMESTAMP="2015-07-01 12:30:50"
export FTIMESTAMP
そしてawkスクリプト(BEGIN { .. }
セクション)から
FTIMESTAMP=ENVIRON["FTIMESTAMP"] ;