如何递归地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?