如何使用grep搜索所有子目录中的文件

时间:2019-11-20 08:53:31  来源:igfitidea点击:

使用grep命令时,如何包含子目录中的文件一起查找?
如何在所有子目录中使用grep命令?

grep命令语法

语法:

grep 'word' file 
grep 'word1 word2' file1 file2 
grep [option] 'word1 word2' file1 file2
grep 'word-to-search' *

使用grep递归搜索子目录

将-r选项传递给grep命令以递归搜索整个目录树。

语法为:

grep -r 'word-to-search' *

或者

grep -R 'word-to-search' *

grep搜索整个目录示例

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

在当前目录及其所有子目录中的所有文件中搜索包含 ErrorLog的行

grep -r 'ErrorLog' *

在/etc/及其子目录的文件中搜索IP192.168.1.254

grep -r '192.168.1.254' /etc/

其他方法

除了使用grep,我们还可以使用find命令:

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

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

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