Grep:计算所有递归文件中与文件名匹配的特定字符串

Grep:计算所有递归文件中与文件名匹配的特定字符串

我已经可以计算目录中所有文件中的字符串数量:

grep -roh „XXX" . | wc –w

但我不知道如何隔离该语句。我只想统计文件名中包含以下字符串“2015-09-25”的文件中的单词。

有人能帮我吗?

答案1

这应该可以工作,它用于find隔离您感兴趣的文件,然后仅在这些文件上运行 grep:

find /mydir -maxdepth 1 -type f -name "*2015-09-25*" -execdir grep -roh "XXX" "{}" \+ | wc -w

如果你还想在 /mydir 的子目录中查找文件,只需删除-maxdepth 1

答案2

如果所有文件都在当前目录中,尝试

grep -oh "XXX" *2015-09-25* 

否则尝试

 grep -roh -c --include="*2015-09-25*" "XXX" 

在哪里

  • -r告诉 grep 进行递归
  • --include="*2015-09-25*"根据文件的基本名称进行过滤。

相关内容