我有一条命令
cat test.log | cut -d':' -f1 | sort -u
返回:8967 4376 0989 4321
我想把它放在数组中,所以我做了
arr=$(cat test.log | cut -d':' -f1 | sort -u)
我可以用
打印出来for i in $arr; do
echo ${i}
done
输出:8967 4376 0989 4321
但是当我尝试通过回显每个元素来访问它
echo ${arr[0]}
返回1234 1234 1902 4224 5883 8273
和
echo ${arr[1]}
不返回任何内容
我也尝试过将每个元素都放入with(sudo code)
for i in command
arr+=i
这也不起作用。有人可以告诉我这是什么原因吗?
编辑:
根据查尔斯推荐的帖子,我尝试使用map,但是它给了我一个语法错误。我应该怎么写呢?
mapfile -t my_array < <( cat test.log | cut -d':' -f1 | sort -u )