如何递归地grep?

我如何递归地grep所有的目录和子目录?

find . | xargs grep "texthere" *

grep -r "texthere" .

第一个参数表示要搜索的正则表达式,而第二个参数表示应该搜索的目录。 在这种情况下, . 表示当前目录。

注意:这适用于GNU grep,在像Solaris这样的平台上,您必须特别使用GNU grep而不是传统的实现。 对于Solaris,这是ggrep命令。


如果你知道你想要的文件的扩展名或模式,另一种方法是使用--include选项:

grep -r --include "*.txt" texthere .

您也可以提及使用--exclude排除的文件。

如果您经常搜索代码,Ag(The Silver Searcher)是grep更快的替代方案,它是为搜索代码而定制的。 例如,它默认是递归的,并自动忽略.gitignore列出的文件和目录,因此您不必为grep或find传递相同的繁琐排除选项。


也:

find ./ -type f | xargs grep "foo"

但grep -r是一个更好的答案。

链接地址: http://www.djcxy.com/p/3311.html

上一篇: How do I grep recursively?

下一篇: How can I make grep print the lines below and above each matching line?