在Linux中如何通过子目录递归地使用Grep命令?

grep 是一个非常有用的命令来搜索文件和目录。什么使 grep 强大的是它可以搜索文件内容。我们可以根据扩展名搜索文件内容。递归行为通过查找子目录和文件使其更强大。

null

Linux Grep命令简介及实例

递归-r选项

我们将从一个简单的示例开始,只指定递归选项 -r 这是“递归”的捷径。在本例中,我们将搜索具有字符串的文件 import . 我们会搜索的 /home 目录。

$ grep -r "import" /home/
Recursive -r Option
递归-r选项

指定文件名模式或扩展名

我们可以指定递归搜索的文件模式。例如,如果我们想搜索Python脚本或代码文件内容,我们可以使用 *.py 文件模式只递归地查看那些文件。在本例中,我们将搜索 import 期限。我们将使用 --include 选项。

$ grep -r --include "*.py" "python3" /home/
Specify File Name Pattern or Extension
指定文件名模式或扩展名

排除指定的文件名模式或扩展名

我们还可以指定要排除的文件名模式或扩展名。例如,如果我们只想搜索python脚本,而不是 pyc 或者我们可以指定排除的python缓存文件 pyc . 我们将使用 --exclude 此选项。

$ grep -r --exclude "*.pyc" "python3" /home/

搜索不区分大小写

默认情况下 grep 搜索区分大小写。区分大小写将看起来精确。如果我们想看案件敏感,我们应该提供 -i 选项。在本例中,我们将搜索 test 不区分大小写,意思是 TEST Test 等。将被寻找。

$ grep -r -i "test" /home/
Search Case-Insensitive
搜索不区分大小写

搜索多个目录

在前面的示例中,我们只提供了一个要搜索的目录。在某些情况下,我们可能需要搜索位于不同路径的多个目录。在本例中,我们将搜索目录 /etc /usr/股 and /home`在单个命令中,将它们添加到命令的末尾。

$ grep -r -i "test" /etc/ /usr/share/ /home/
Search Multiple Directories
搜索多个目录

相关文章: 有用的Linux命令

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享