スポンサーリンク

コマンドの実行結果を配列に格納する

下記の形式で書くことにより、コマンドの実行結果をarrayに格納することができます。

array=($(コマンド))

下記に、grepの結果を配列に格納する方法を書いてみたいと思います。

サンプルコードと実行結果も貼っています。
よろしければご参考ください。

スポンサーリンク

grepで検索された行を配列に格納する方法

例えば、ファイルin.txtをgrepして”target”の文字列にマッチした行を、配列arrayに格納するためには下記のように書きます。

array=($(grep “target” in.txt))

サンプルコード

例えば、下記のようにin.txtがあったとします。

下記がサンプルコードになります。
ファイルin.txtをgrepして”target”の文字列にマッチした行を、配列arrayに格納しています。
その後、echoで配列の中身を表示しています。

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

配列の参照方法

上記サンプルコードのechoの部分について補足説明です。
配列の先頭の値が出力されます。

配列の全要素が出力されます。

下記のようにindexを指定して出力できます。
index=0の配列の要素が出力されます。

index=1の配列の要素が出力されます。

index=2の配列の要素が出力されます。

for文で配列の要素を順に取得して変数iに格納し、echoで出力しています。




その他:grepの-oオプションで検索にマッチした部分のみ配列に格納
grepに-oオプションを付けることで、検索にマッチした部分のみ配列に格納することもできます。

下記に-oオプションを付けたサンプルコードを書いています。
正規表現と組み合わせると便利に使うことができます。
参考:grepの-oオプションで検索にマッチした部分のみ出力

スポンサーリンク