我有以下问题,但无法解决它,并没有找到适合的解决方案.
我想做的事:
我有一个文件a.txt.在每一行中有4个空格分隔的字段.cat a.txt会给出以下输出:
A0 A1 A2 A2 B0 B1 B2 B3 C0 C1 C2 C3
到现在为止还挺好.现在,每个这些东西都应该是一个命令选项的值,我想为文件的每一行运行命令
./command -q A0 -w A1 -e A2 -r A3
但我找不到办法做到这一点.
我试过这个
for i in "`cat a.txt`;do j=($1);./command -q $(j[0]) -w $(j[1]) -e $(j[2]) -r $(j[3]); done
但$(j [0])包括a.txt的整个内容(因此显示与cat相同的结果)和$(j [1])等等是空的.
有人有想法吗?(我敢肯定有人;))
不要使用for
或读取行cat
.当你使用bash时,你可以直接读入一个数组,尽管为你的变量命名可能更有意义:
while read -r q w e r; do ./command -q "$q" -w "$w" -e "$e" -r "$r" done < a.txt