如果我这样做,请在文本文件中说
grep FINAL *.msg
它返回
FINAL COMPUTATIONS: Elapsed Time: 000:30:55.65; CPU Time: 000:30:26.53
FINAL COMPUTATIONS: Elapsed Time: 000:28:11.77; CPU Time: 000:27:41.36
现在如果我做 for 循环
for line in `grep FINAL *.msg`
"$line"
不认为是"FINAL COMPUTATIONS: Elapsed Time: 000:30:55.65; CPU Time: 000:30:26.53"
单行。
我该如何解决这个问题?
它与 shell 拆分输入的方式有关。请记住,除非另有说明,否则任何空格通常都会拆分输入:
DopeGhoti 是绝对正确的,这里的东西可能更适合一点。在进程替代的帮助下,从 grep 输出中逐行读取(模式应用于当前目录中的所有 *.msg 文件):
片段没有 shellcheck 警告 :)