如何grep文件的所有子目录

时间:2020-01-09 14:16:35  来源:igfitidea点击:

如何grep所有子目录?
如何在Linux或Unix等操作系统的所有子目录中使用grep命令?
如何使用grep在OS X/BSD/Unix-like操作系统上查找包括所有子目录在内的模式?
您可以在Linux或类似Unix的系统上使用grep命令在文件中搜索给定的单词。
基本语法如下:

grep 'word1 word2' file1 file2 
grep [option] 'word1 word2' file1 file2 

您可以使用通配符搜索当前目录中的所有文本文件:

grep 'word-to-search' *

使用grep递归搜索子目录

将-r选项传递给grep命令以递归搜索整个目录树。
使用该选项,可以通过将-r或-R传递给grep命令来搜索当前目录和子目录的所有级别。
语法为:

grep -r 'word-to-search' *

或者

grep -R 'word-to-search' *

例子

例如,以下将搜索当前目录及其所有子目录中的所有文件,以查找包含单词main()的每一行:

grep -r 'main()' *

以下示例将为包含IP地址192.168.1.254的每一行搜索/etc /及其所有子目录:

grep -r '192.168.1.254' /etc/

其他选择

您可以按以下方式使用find命令:

find /dir/to/search -type f -iname "pattern" -print0 | xargs -I {} -0 grep --color 'word-to-search' "{}"

例如,在/usr中的所有* .conf文件中搜索IP地址192.168.1.254:

## must run as root #
find /usr/ -type f -iname '*.conf' -print0 | xargs -I {} -0 grep -H --color '192.168.1.5' "{}"