awkで配列操作をする時のfor文の書き方は主に2通りの方法があります。
書き方をよく忘れるので備忘録。

スポンサーリンク

サンプルコード

まずはサンプルコードです。in.txtを一行ずつ読み込んで、1フィールド(列)目を配列arrに順に詰めていきます。
その後、ENDブロックで、2種類のfor文の書き方で、配列arrの要素を全てprint出力しています。

スポンサーリンク

for文でインデックスをインクリメントして配列操作をする

awkの配列は連想配列となっていますが、インデックスに数字を設定することで、下記のようにfor文で順に配列操作をすることができます。length()は、awkの標準関数で、引数に配列を設定するとその配列の要素数を返します。
下記のように、インデックス0からインクリメントして、その配列の要素数だけprint出力しています。

for(インデックス in 配列){}形式で全ての配列操作をする

もう一つの配列操作の方法として、下記のようにfor(インデックス in 配列){}形式で配列処理ができます。
ただし、配列の処理順は規則性があるわけではなく、下記のprint出力の順番もソートされているわけではありません。

awkの連想配列の使い方の例を下記の記事で書いています。
参考:awkの連想配列で特定の列の文字列の出現回数をカウント

スポンサーリンク