Linux grep某些文件中的模式,并在每个文件中打印总和

Linux grep某些文件中的模式,并在每个文件中打印总和,linux,grep,Linux,Grep,我想grep一些文件中的模式,并用文件名计算出现的次数。好的,如果我使用 grep -r "month" report* | wc -l 它将对所有文件中的所有实例求和。因此,输出为单个值324343。我想要这样的东西 report1: 3433 report2: 24399 .... grep命令将显示文件名,但会打印每个实例 grep-c将为您提供每个文件的匹配计数: grep -rc "month" report* 您需要将每个文件传递给grep:echo report*| xarg

我想grep一些文件中的模式,并用文件名计算出现的次数。好的,如果我使用

grep -r "month" report* | wc -l
它将对所有文件中的所有实例求和。因此,输出为单个值
324343
。我想要这样的东西

report1: 3433
report2: 24399
....

grep命令将显示文件名,但会打印每个实例

grep-c
将为您提供每个文件的匹配计数:

grep -rc "month" report*

您需要将每个文件传递给grep:
echo report*| xargs grep-c month


如果是递归的,则使用
find report*-exec grep month-Hc'{}'\

-r表示,如果列出的任何文件是一个目录,它将进入该目录及其子目录(例如,如果您有一个“reportDIR”目录,您的grep将继续在这个dir+子目录中)。但它不会在当前目录中输入名称与“report*”不匹配的目录。如果您想在当前目录及以下目录中grep任何名为“report*”的文件,您可以使用@Cong Wang answer,但可以这样修改:
find-名称“report*”-exec grep-Hc“month”{}\