awkの配列の初期化には、split()関数を使うと便利です。

スポンサーリンク

awkのsplit関数の使い方

※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-

※MACターミナル(BSD系)での動作確認です。

awkのsplit関数は下記の形式で書くことができ、split対象文字列を区切り文字で分割して、分割結果を配列に格納します。

split(split対象文字列, 配列, 区切り文字)

例えば、"push pop shift"をスペース" "区切りで分割して、配列arrayに格納するには、下記のように書きます。



終了処理(配列の削除)にはdeleteが使えます。
参考:awkで配列自体を削除する場合もdeleteでOK

メモリの消費が気になるときに使えますね。

スポンサーリンク

サンプルコード(splitで格納した配列をforループ処理)

サンプルコードです。
前述した通りですが、"push pop shift"をスペース" "区切りで分割して、配列arrayに格納します。
そして、配列arrayの全ての要素をforループ処理してprint出力します。

実行すると、下記のようになり、splitの結果がそれぞれ配列に格納されているのがわかると思います。

区切り文字を正規表現で複数指定してsplitする

区切り文字をを正規表現で指定してsplitを使うこともできます。

例えば、":"と"+"の両方の文字を区切り文字を設定したい場合は、
区切り文字を正規表現で、/[:+]/ と指定します。

下記がサンプルコードになります。

下記が実行結果になります。

スポンサーリンク

splitで分割した最後の要素を取得

splitで分割した最後の要素を取得するには、splitで格納した配列の最後の要素にアクセスします。
splitの戻り値が、splitで分割した要素数として返るので、これを利用します。

splitの戻り値をindexとして、splitで格納した配列の最後の要素にアクセスすればOKです。

下記がサンプルコードになります。

下記が実行結果になります。

スポンサーリンク