【发布时间】:2018-12-03 13:38:40
【问题描述】:
我有三个文件,其中包含我需要稍后用于应用功能的文件列表。 我设法创建了一个遍历 3 个不同文件的循环,但不完全是我需要的输出。 我的输入: rw_sorted_test.txt
1
2
3
fwd_sorted_test.txt
A
B
C
run_list.txt
1st
2nd
3rd
我是这样运行的:
for f in `cat rw_sorted_test.txt`; do for l in `cat fwd_sorted_test.txt`; do for r in `cat run_list.txt` do echo ${f} ${l} ${r}; done; done; done;
我现在得到的是这样的:
1 A 1st
1 A 2nd
1 A 3rd
2 A 1st
2 A 2nd
2 A 3rd
3 A 1st
(...)
我正在寻找的是这样的:
1 A 1st
2 B 2nd
3 C 3rd
我相信这会很简单,但我真的是初学者,所有的解决方法都没有奏效。 另外,我怎样才能让它在回显我想要的输出后运行? 谢谢
【问题讨论】:
-
如果你嵌套 3 个循环,每个循环由 3 个项目组成,当然你得到 3**3 = 27 个项目。如果你只想要 3 个项目,你必须只使用一个循环(loop)。
-
如何转换成一个循环并仍然从每个文件中获取结果?我已经尝试在
cat rw_sorted_test.txt中为 f 为cat fwd_sorted_test.txt中的 l 为cat runlist_test.txt中的 r;做回声${f} ${l} ${r};完毕;完毕;完毕;但这会以不同的顺序导致相同的事情。如果我只放第一个 for,我只能让它运行 3 次,但是我需要检索其他文件上的行。