操作方法:在 Unix / Linux 中使用 Grep 命令搜索子目录
我想搜索并查找位于 $HOME/project/school 的所有目录中包含单词“main()”的所有文件。如何使用 grep 命令在 Unix 或 Linux 操作系统下查找包括所有子目录的文本?
grep 命令用于在文本中搜索命令行上指定的模式(单词)。您需要使用以下语法:
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | grep |
预计阅读时间 | 1 分钟 |
grep -r 'word' /path/to/dir
-r 选项用于递归搜索整个目录树。例如,下面将在当前目录及其所有子目录(包括其子目录)中的所有文件中搜索包含单词“main()”的每一行:
grep -r 'main()' ~/projects/school
您还可以使用以下命令显示通常打印输出的每个文件的名称-l:
grep -rl 'main()' ~/projects/school
您可以使用选项打印每个匹配的文件名-H:
grep -rH 'main()' ~/projects/school
最后,您也可以使用以下选项显示行号-n:
grep -rHn 'main()' ~/projects/school
该-i选项指示 grep 忽略大小写。因此,例如,以下示例可以非常容易地转换为不区分大小写的搜索,如下所示(匹配 main()、MAIN()、mAiN() 等):
grep -rHni 'main()' ~/projects/school
在此示例中,搜索 IP 地址 192.168.1.5:
grep -Hrn --color '\<192.168.1.5\>' /etc
示例输出: