将 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

BTW:cat file | grep ...可以缩写为grep ... file,grep 也可以读取文件。

相关内容