grep 递归查找给定目录中的文本

例子

使用 GNU grep

grep -r 'pattern' <directory path>

还要列出匹配-n项的行号,请使用选项

grep -rn 'pattern' <directory path>

仅搜索具有特定glob模式的文件

grep --include='*.txt' -r 'pattern' <directory path>

排除文件模式或目录

grep -R --exclude=*.log 'pattern' <directory path>

grep -R --exclude={*.log,*.class} 'pattern' <directory path>

grep -R --exclude-dir=tmp 'pattern' <directory path>

grep -R --exclude-dir={tmp,lib} 'pattern' <directory path>

注释和其他有用的选项

  • <directory path> 如果在当前目录中搜索可以跳过

  • 该-R选项下面的所有符号链接,不像-r跟随符号链接,只有当他们是在命令行上

  • -l 只列出匹配的文件

  • -h 取消文件名前缀

  • --color=auto 突出显示匹配的模式

  • -m <num> 为每个文件输入指定最大匹配数

递归搜索的 POSIX 解决方法

find <directory path> -type f -exec grep -l 'pattern' {} +

  • 类似的选项-n,-l等根据需要可以使用

  • 如果{} +不支持,请{} \;改用

  • 有关命令的更多帮助,请参阅查找文档,find例如如何包含/排除文件类型、目录等

以上是 grep 递归查找给定目录中的文本 的全部内容, 来源链接: utcz.com/z/361753.html

回到顶部