如何将管道的输出存储到数组中

如何将管道的输出存储到数组中

我有一个场景,我正在获取需要将数据放入数组中的数据。一旦使用 echo 将数据放入数组中,就应该打印它

v=`cat $FILE | rev | cut -d'|' -f4- | rev | cut -d'|' -f2- | sed 's/|/ /g'`

输出给出:

123.23 3453.234

此输出影响数组“arraydemo”

mapfile -t arraydemo < echo "$v"

当我echo arraydemo不打印任何内容时..显示如下错误:echo:没有这样的文件或目录

echo "${arraydemo[@]}"

这就是脚本运行时的输出,而不是打印数据的方式 echo "${arraydemo[@]}"

+ FILE=demo.txt
++ cat demo.txt
++ rev
++ cut '-d|' -f4-
++ rev
++ cut '-d|' -f2-
++ sed 's/|/ /g'
+ var='16.84 15.24'
+ mapfile -t arraydemo

echo ''

答案1

$ a="1234 5678"

$ mapfile -t arraydemo < <(echo "${a}")

$ echo "${arraydemo[@]}"
1234 5678

相关内容