awkの配列をfor文で順繰りに読む場合、
eachのような気の利いた関数はないので、
シェルなどと同様 for ( NUM in ARY )てな書き方になります。
実際のところ
BEGIN { a["here"] = "here" a["is"] = "is" a["a"] = "a" a["loop"] = "loop" for (i in a) { j++ a[j] = j print i } }
awk界隈では"$1"など文字で配列のインデックスを貼っているケースが多いように感じます。
ただ、これは一部処理系*1では投入順にならないといった問題もあるようです。
その場合、NFなどを使って、sortされても問題ないようにしたほうがよいかと思われます。
参考もと
- effective awk
*1:bawk等