任意の式で定義されたawkフィールドを参照する方法は?

任意の式で定義されたawkフィールドを参照する方法は?

${name}シェルスクリプトには、変数名を明示的に指定し、それを周囲のテキストと区別する構造があります。

では、awkこれを使用して5番目のフィールドを参照したり、$5変数Nが指すN番目のフィールドを参照したりできます$N

N+1番目のフィールドを参照するにはどうすればよいですか?を使用すると、$N+1N番目のフィールドの内容に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))効果がある)

関連情報