gawkコマンドラインの変数割り当ては-vに従うべきですか?

gawkコマンドラインの変数割り当ては-vに従うべきですか?

awkプログラミング言語で

awk  [ -Fs]  'program'  optional list of filenames 
awk  [ -Fs]  -f progfile  optional list of filenames 

オプション -Fs は、フィールド区切り変数 FS を s に設定します。ファイル名がない場合は、標準入力を読み込みます。 ファイル名はvar = textの形式を取ることができ、この場合、パラメータがファイルにアクセスされたときに実行されるvar変数のテキスト割り当てとして扱われます。

Gawkでは、オプションの後に変数割り当てが指定されていることがわかります-v。オプションなしで引用文に記載されている内容が-vまだGawkに適用されるかどうか疑問に思います。

ありがとうございます。

ベストアンサー1

はい。

「パラメータがファイルとしてアクセスされたとき」割り当てが発生するため、ブロック内の変数は使用できませんが、これはBEGIN他のすべての実装と同じです。awk

$ echo 'input data' | gawk -vvar1="hello" 'BEGIN { print var1, var2 } { print $0, var1, var2 }' var2='world!'
hello
input data hello world!

おすすめ記事