Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

awkでARGV系変数を扱う

awkにも、引数を取得するARGV系変数があります。
引数の総数を見るARGCという便利変数もついてるので、やりようによっては色々応用が効く可能性があります。

実際のところ

引数で変数A、Bを定義し、awkスクリプト内で参照するようなスクリプトの場合、
もっとも頭を使わない実装なら以下のようにします。

$ gawk 'END{ print "ARGC:"ARGC, "("ARGV[0], ARGV[1], ARGV[2]")"}' A=3 B=4 /dev/null
ARGC:4 (gawk A=3 B=4)

for制御文を使うと、もう少しスマートになります。
二個程度だと逆に長くなりますけどね

BEGIN {
print "ARGC:"ARGC, "("
for (i = 0; i < ARGC; i++)
  print ARGV[i]
print ")"}

参考もと

  • effective awk