シェルからgawkにタイムスタンプ変数を渡す

シェルからgawkにタイムスタンプ変数を渡す

両方のタイムスタンプの視差を取得したいが、タイムスタンプ変数をシェルで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。またはシェルからENVIRONARGV$shell_varawk

おすすめ記事