对配对数据进行 bash 迭代



>我有一个从bash脚本执行的程序

mydata=$(myprogram etc)

它提供这样的数据:

echo $mydata

foo1

bar1

foo2

bar2

foo_n

bar_n

我想迭代$mydata交付到另一个命令,如下所示:

another_command foo1 bar1

问题:我怎样才能用 bash 做到这一点? 问题 2:以另一种方式提供数据会大大简化事情吗?例如,如果数据如下所示:

foo1 bar1 foo2 bar2 ... foo_n bar_n

您可以使用xargs命令

 echo $mydata | xargs -n 2 another_command

例如:

 $ echo foo1 bar1 foo2 bar2 | xargs -n 2 echo PAIR
 PAIR foo1 bar1
 PAIR foo2 bar2

如果输入用空格或换行符分隔,则使用默认选项xargs无关紧要

你可以使用数组

声明数组

declare -a mydata

然后将输出保存到数组,在 之间运行命令

mydata=( $(echo -e "f1nb1nf2nb2") )
       ^                             ^

for (( i=0;$i<${#mydata[*]};i+=2 ))
do
   echo ${mydata[$i]}" "${mydata[$i+1]}
done

您可以使用此脚本:

while read a; read b; do 
   another_command "$a" "$b"
done < file

相关内容

  • 没有找到相关文章

最新更新