我知道之前已经问过这个问题。但是,这些例子似乎都不适合我。因此: 我有所有类型的文件 XXXX1.txt XXXX2.txt XXXX3.txt ... XXXX9.txt在同一目录中。
现在我想使用bash从每个文件中获取某个值:
for file in *$i.txt
do
for ((i = 1; i < 10; i++))
do
grep "energy" *.txt >> energies.txt
done
done
代码和grep工作正常没有任何错误,但我总是得到第一次迭代的grep,第一次能量打印9次。它从不关注其他人。我知道这种循环在bash中很复杂。但是,请不要建议将所有文件移动到单独的目录中并循环显示它们。
答案 0 :(得分:1)
您不需要这种复杂(和错误)的嵌套循环。 试试这个命令:
grep -h "energy" *{1..9}.txt >> energies.txt
答案 1 :(得分:0)
如果您只需要文件内容:
grep -h "energy" *[1-9].txt >> energies.txt
如果您需要包含内容的文件名:
grep -H "energy" *[1-9].txt >> energies.txt