Awk - 変数を別の変数名の一部として使用する方法

Awk - 変数を別の変数名の一部として使用する方法

awkコマンドで使用される変数のリストがあります。スクリプトに渡されるパラメータなので、値は定義されていませんが、forループで使用しようとしています。

私の質問では、変数の値を別の変数名の一部として使用できますか?それともこれは悪い考えですか?それでは、私が取ることができる他の道はありますか?

はい

awk -v var1=hi -v var2=howdy -v var3=greetings \
'BEGIN{for (i = 1; i <= 3; ++i) print var+i}'

希望の出力

hi
howdy
greetings

ベストアンサー1

awk私はこれが正しい状況では可能ではないと思います。

ただし、gawkバージョン4.1.0(2013年5月)以降のGNU awk()には、SYMTABキーがすべてのグローバル変数の名前である配列があるため、次のようになります。

gawk -v var1=hi -v var2=howdy -v var3=greetings '
  BEGIN { for (i=1; i<=3; i++) print SYMTAB["var"i] }
'
hi
howdy
greetings

おすすめ記事