grep 在多个文件中搜索模式并输出到不同的文件

grep 在多个文件中搜索模式并输出到不同的文件

我有一个目录 /foo/bar ,其中包含许多文件,例如a.file、等。我用来在该目录中的每个文件中搜索模式,但我想将结果发送到新文件中,例如是否在 中找到该行,是否在 中找到该行等等。b.filec.filegrepxyza.new.filea.fileb.new.fileb.file

我的尝试: grep -ri "xyz" /foo/bar/*在屏幕上运行良好,结果中的每一行都以包含模式的文件的路径开头。该路径是否存储在我可以用来创建新文件的变量中?

编辑:

的内容a.new.file应该是匹配xyzfrom 的所有行a.file

的内容b.new.file应该是匹配xyzfrom 的所有行b.file ,依此类推。

答案1

for T in *.file
do
  grep -- xyz "$T" > "${T%.file}.new.file"
done

相关内容