私は "サイズ"と呼ばれる変数を作成し、gawkの位置変数から値を割り当てようとしています。しかし、それはうまくいかないようです。以下の例では、フィールド4の値を変数 "size"に格納しようとしています。可変サイズを印刷すると、フィールド4の代わりに行全体が印刷されます。
ファイルされた値を後で使用するために変数に保存するにはどうすればよいですか?
prompt> echo "Live in a big city" | gawk '/Live/ {size=$4; print $size}'
以下が出力されます。 大都市に住む
I would like to see just this:
big
ドル記号を残す。 awkはシェルのようではなく、変数を逆参照するために余分な句読点が必要ないCと似ています。現在の行のn番目のフィールドの値を取得するためにドル記号のみを使用します。
echo "Live in a big city" | gawk '/Live/ {size=$4; print size}'
awk変数 size
に値 big
が割り当てられています。次に、printステートメントで、awkは size
変数を参照解除して print $ big
を試みます。文字列 "big"は整数として解釈され、数字で始まらないので、数字は0として扱われます。したがって、 print $ 0
、したがって完全な行が得られます。