如何使用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' "{}"