我已经使用解析了一个文件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 也可以读取文件。