2012-03-15 11 views
2

次のコードは期待どおりに機能します。awkの出力で変数を使用する

awk -F'^' '{printf "set %s:%s %s\n",$1,$2, $7}' todel.txt | sed 's/$/\\r\\n/' >> tofile.txt 

しかし、私は、以下に示すように、出力に変数を追加しようとすると、私はエラーを取得する:

awk -F'^' '{printf "set %s:%s:%s %s\n",$1,$2,$myvar $7}' todel.txt | sed 's/$/\\r\\n/' >> tofile.txt 

答えて

5

$myvarは、単一引用符では展開されません。
あなたはawkにシェル変数を渡すために-vオプションを使用することができます。

awk -F'^' -v myvar=$myvar '{printf "set %s:%s:%s %s\n",$1,$2,myvar,$7}' todel.txt 
+0

のawk:(FILENAME = todel.txt FNR = 1)致命的:予想通りフォーマット文字列#を満たすのに十分な議論が動作していないよう。 – shantanuo

+0

欠落しているカンマを追加しました。私は自分のコンピュータではないので、テストすることはできません。 ) - : – tripleee

+0

はい、欠落しているカンマもテストしていません。 – kev

関連する問題