如何递归 grep
所有目录和子目录?
find . | xargs grep "texthere" *
原文由 wpiri 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您知道所需文件的扩展名或模式,另一种方法是使用 --include
选项:
grep -r --include "*.txt" texthere .
您还可以使用 --exclude
提及要排除的文件。
如果您经常搜索代码, Ag (The Silver Searcher) 是一个比 grep 更快的替代方法,它是为搜索代码而定制的。例如,默认情况下它是递归的,并自动忽略 .gitignore
中列出的文件和目录,因此您不必一直将相同的繁琐排除选项传递给 grep 或 find。
原文由 christangrant 发布,翻译遵循 CC BY-SA 3.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
1 回答3.6k 阅读
第一个参数代表要搜索的正则表达式,而第二个参数代表应该搜索的目录。在这种情况下,
.
表示当前目录。注意:这适用于 GNU grep,并且在 Solaris 等某些平台上,您必须专门使用 GNU grep 而不是传统实现。对于 Solaris,这是
ggrep
命令。