${name}
シェルスクリプトには、変数名を明示的に指定し、それを周囲のテキストと区別する構造があります。
では、awk
これを使用して5番目のフィールドを参照したり、$5
変数Nが指すN番目のフィールドを参照したりできます$N
。
N+1番目のフィールドを参照するにはどうすればよいですか?を使用すると、$N+1
N番目のフィールドの内容に1を加えた値が得られますが、これは私が望むものではありません。
temp = N+1
他の変数を設定した後に参照することもできますが、$temp
「N番目のプラス1」フィールドを一度に指定する方法はありませんか?
それとも、NのN番目のフィールドを返す関数を参照できますか?
答え1
数字を括弧で囲みます。
$ echo 1 3 5 7 | awk '{print $(1+3)}'
7
一部の関数を使用してフィールド番号を計算するには、角かっこはまったく必要ありません。
$ echo 1 3 5 7 | awk '{print $sqrt(16)}'
7
(もちろん痛くないのでそれも$(sqrt(16))
効果がある)