catの結果を別のインデックス値として保存

catの結果を別のインデックス値として保存

を使用してファイルを解析しましたcat。今度は結果を配列に保存したいと思います。

var1=$(cat abc.txt | grep .........)

var1は次のようになります

33 23 51 11 16 43 5 50 4 2 12 29 32 28 47 41 7 20 38 45 49 26 22 10 44 9 19 27 46

1.各値を配列変数として保存したいのですが、これを行うと 'のすべての結果がcatインデックス0に格納されます。var1

各値を異なるインデックスとしてどのように保存できますか?

ベストアンサー1

Bashには、readarray配列に値を格納する組み込み関数があります。

readarray arr < <(grep "pattern" abc.txt)

これにより、arrコマンドによって指定された値で呼び出される配列が生成されますgrep "pattern" abc.txt(複数行に表示されると、readarray配列に追加されます)。

echo ${arr[0]}
33
$ echo ${arr[10]}
12
$ echo ${arr[*]}
33 23 51 11 16 43 5 50 4 2 12 29 32 28 47 41 7 20 38 45 49 26 22 10 44 9 19 27 46

注:grepもファイルを読み取ることができるので、cat file | grep ...減らして使用できますgrep ... file

おすすめ記事