当前位置:  开发笔记 > 编程语言 > 正文

Bash for循环与文件中的空格分隔字段

如何解决《Bashfor循环与文件中的空格分隔字段》经验,为你挑选了1个好方法。

我有以下问题,但无法解决它,并没有找到适合的解决方案.

我想做的事:

我有一个文件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])等等是空的.

有人有想法吗?(我敢肯定有人;))



1> Tom Fenech..:

不要使用for或读取行cat.当你使用bash时,你可以直接读入一个数组,尽管为你的变量命名可能更有意义:

while read -r q w e r; do
    ./command -q "$q" -w "$w" -e "$e" -r "$r"
done < a.txt

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有