awkでif条件を実装したいです。以下のように「simple_if」というファイル名を作成しました。
BEGIN{
num=$1;
if (num%2==0)
printf "%d is Even number.\n",num;
else printf "%d is odd Number.\n",num
}
次に、次のように$ 1のパラメータに10を渡してプログラムを実行します。
awk -f simple_if 10
ただし、入力を許可せず、代わりにゼロを表示します。出力:
0 is Even number.
awkでユーザーから価値を得る方法は?
ベストアンサー1
コマンドラインの末尾に指定された引数は通常、スクリプトが読み取るファイル名awk
として扱われます。awk
コマンドラインで変数を設定するには-v variable=value
を使用します。
awk -v num=10 -f script.awk
これにより、num
スクリプト内の変数として使用できます。上記の例では、変数の初期値は10です。
ENVIRON["variable"]
スクリプトで読み取り環境変数を使用するか(名前付き環境変数の場合variable
)、コマンドライン引数を表示することもできます。ここでは正の整数ですARGV[n]
。n
$1
in を使用すると、awk
現在のレコードの最初のフィールド値を参照しますが、ブロック内で使用するため、まだファイルBEGIN
からデータを読み取っていません。
コードの数は算術コンテキストで使用される空の変数なので、ゼロと解釈されます。