![grep 在多个文件中搜索模式并输出到不同的文件](https://linux22.com/image/138967/grep%20%E5%9C%A8%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B8%AD%E6%90%9C%E7%B4%A2%E6%A8%A1%E5%BC%8F%E5%B9%B6%E8%BE%93%E5%87%BA%E5%88%B0%E4%B8%8D%E5%90%8C%E7%9A%84%E6%96%87%E4%BB%B6.png)
我有一个目录 /foo/bar ,其中包含许多文件,例如a.file
、等。我用来在该目录中的每个文件中搜索模式,但我想将结果发送到新文件中,例如是否在 中找到该行,是否在 中找到该行等等。b.file
c.file
grep
xyz
a.new.file
a.file
b.new.file
b.file
我的尝试:
grep -ri "xyz" /foo/bar/*
在屏幕上运行良好,结果中的每一行都以包含模式的文件的路径开头。该路径是否存储在我可以用来创建新文件的变量中?
编辑:
的内容a.new.file
应该是匹配xyz
from 的所有行a.file
的内容b.new.file
应该是匹配xyz
from 的所有行b.file
,依此类推。
答案1
for T in *.file
do
grep -- xyz "$T" > "${T%.file}.new.file"
done