良许Linux教程网 干货合集 使用 grep 在 Linux 上查找包含特定文本的所有文件

使用 grep 在 Linux 上查找包含特定文本的所有文件

本文介绍了如何在 Linux 上查找包含特定文本的所有文件。 为此,我们将使用 grep,一个标准的 Unix 程序。

grep是一个命令行实用程序,它打印与给定模式匹配的行,默认情况下应安装。

让我们从简单的开始。 假设您要在当前目录及其子目录中的所有文件中搜索单词要(区分大小写! )。 那么你需要打开终端,导航到要执行搜索的文件夹,然后运行:linuxmi

linuxmi@linuxmi:~/www.linuxmi.com$ grep -r ‘linuxmi’

这列出了当前文件夹和子文件夹中的所有文件,其中包含. 这包括像例如这样的字符串,因为它包含我们的搜索模式. -r代表递归,读取目录及其子目录中的所有文件如果您需要递归的对目录下的所有文件(包括子目录)进行查找,请使用**-R代替-r。** linuxmi``linuxmicom``linuxmi

linuxmi@linuxmi:~/www.linuxmi.com$ grep -R ‘text’

如果您只想列出包含完整单词的文件名(而不是默认的部分单词匹配),而不是诸如, 之类的内容,则需要附加**-w(整个单词)**命令行选项,例如这个:linuxmi``linuxmicom``wwwlinuxmi

linuxmi@linuxmi:~/www.linuxmi.com$ grep -rw ‘linuxmi’

如果您不想在当前文件夹中搜索,而是在特定文件夹中搜索,您可以通过在命令末尾添加它来指定 grep 应该查看的路径,如下所示:

linuxmi@linuxmi:~/www.linuxmi.com$ grep -rw ‘linuxmi’ /home/linuxmi/linuxmi

Grep 有很多选项,但下面我将只列出一些在 Linux 上尝试查找包含特定文本的所有文件时您可能会觉得特别有用的选项(除了上面已经提到的那些):

  • -n显示行号。 当找到匹配项时,除了找到它的文件路径之外,grep 还会显示找到该模式的行号
  • -i执行不区分大小写的搜索(默认情况下区分大小写)。 根据文件的数量,这可能会减慢搜索速度,因此在使用时要考虑到这一点
  • --include=GLOB/--exclude=GLOB包括或排除某些文件
  • --exclude-dir=GLOB 用于从搜索中排除文件夹

让我们看一个结合这些命令行标志的例子。 假设您要查找文件夹及其子文件夹中不区分大小写 ( )的所有文件,但和子文件夹 ( )除外,并且仅搜索具有和扩展名 ( )的文件。 此外,您希望显示行号 ( )、递归搜索并跟踪所有符号链接 ( )。 在这种情况下,您需要使用的命令是这样的:-i``linuxmi``~/Documents``linuxmi``linuxmi.com``--exclude-dir``.txt``.js``--include``-n``-R

linuxmi@linuxmi:~/www.linuxmi.com$ grep -Rni –exclude-dir={linuxmi,linuxmi.com} –include={.txt,.js} ‘linuxmi’ /home/linuxmi/www.linuxmi.com

如下图:

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部
x
x