![查看所有 Bash/Shell 脚本相关的常见问题解答](https://www.alaica.com/wp-content/uploads/linux-97.png)
如何grep 所有子目录?如何在 Linux 或类 Unix 操作系统上使用 grep 命令遍历所有子目录?如何使用 grep 查找包含 OS X/BSD/类 Unix 操作系统上所有子目录的模式?
您可以使用grep 命令在 Linux 或类 Unix 系统上搜索文件中的给定单词。基本语法如下:
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | grep+终端 |
美东时间。阅读时间 | 2分钟 |
grep 'word' file
grep 'word1 word2' file1 file2
grep [option] 'word1 word2' file1 file2
您可以使用通配符搜索当前目录中的所有文本文件:
grep 'word-to-search' *
使用 grep 递归搜索子目录
将-r选项传递给 grep 命令以递归搜索整个目录树。-r使用此选项,可以通过将或传递-R给 grep 命令来搜索当前目录和所有级别的子目录。语法是:
grep -r '要搜索的单词' *
或者
grep -R '要搜索的单词' *
例子
例如,以下命令将在当前目录及其所有子目录中的所有文件中搜索包含单词“main()”的每一行:
grep -r 'main()' *
以下示例将在 /etc/ 及其所有子目录中搜索包含 IP 地址“192.168.1.254”的每一行:
grep -r '192.168.1.254' / etc /
其他选项
您可以使用 find 命令,如下所示:
find / dir / to / search -type f -iname “模式” -print0 | xargs -I { } -0 grep --color '要搜索的单词' “{}”
例如,在 /usr 中的所有 *.conf 文件中搜索 IP 地址“192.168.1.254”:
## 必须以 root 身份运行 # find / usr / -type f -iname '*.conf' -print0 | xargs -I { } -0 grep -H --color '192.168.1.5' "{}"
推荐读物
- 有关更多信息和示例,请参阅“ Linux/UNIX grep 命令教程系列”或阅读。