我如何以递归方式 grep 目录中的特定文件?

我如何以递归方式 grep 目录中的特定文件?

我是 linux 和 grep 的新手,正在尝试找到解决方法。

通过使用,find -name *.java我能够找到特定目录中所有 java 文件的名称。假设我想计算这些文件中出现的次数foo,我该怎么做?

我一直在尝试类似的事情:

grep -r "foo" *.java

并得到如下回应:

grep:  *.java:  No such file or directory

有任何想法吗?

答案1

find . -name '*.java' | xargs grep <your pattern here>

答案2

有一种专门针对此类需求而设计的工具:确认

ack 是一个类似 grep 的工具,针对拥有大量异构源代码的程序员

另请阅读“使用 ack 而不是 grep 的十大理由。”确认页。

答案3

关于什么:

grep -irn --include="*\.java" somePhrase *

答案4

查找 . -type f -name '*.java' -print0 | xargs -0 grep -wo 'foo' | wc -l

相关内容