我想将匹配模式的行内容从输入文件打印到输出文件。我正在使用:
grep -hnr "pattern" ./input.txt > output.txt
Output.txt文件类似于:
this line has the word pattern in it
但是我想在输出文件的同一行中打印输入文件的名称。例如,我希望输出文件像这样:
input this line has the word pattern in it
如果该模式在输入文件中多次匹配,我想多次打印文件名。例如:
input this line has the word pattern in it
input this line also has same pattern
最后,我想在包含许多输入文件(* .txt格式)的目录中执行此操作,并生成一个包含所有结果的output.txt文件。
答案 0 :(得分:0)
只需使用:
grep -H "pattern" ./input.txt > output.txt
来自man grep
:
-H,--with-filename
打印每个匹配项的文件名。当要搜索多个文件时,这是默认设置。-h,--no-filename
在输出中禁止文件名的前缀。当只有一个文件(或只有标准输入)要搜索时,这是默认设置。