寻找着某样东西? 如何在 Linux 中 grep 多个字符串

Linux 终端充满了有用的命令,但很少有像看似简单的命令那么强大 grep. 它代表 全局正则表达式打印,打印用户定义的系统搜索字符集合的结果。

grep 非常强大,但使用起来可能会很吓人,所以今天,您将学习一些基础知识。 如果您在机器上的文档中查找某些信息,通常您会同时查找多个单词。

本文重点介绍如何使用 grep 搜索多个字符串,并将向您展示一些一般使用 grep 的类似提示和技巧。

在 grep 中搜索多个字符串

在开始之前,您需要确保您熟悉一些 Linux 基础知识。 首先,您需要能够启动终端——在大多数系统上,您可以使用组合键 Ctrl + Alt + T,或通过应用程序菜单。

您还需要熟悉如何使用终端按路径引用文件。 例如,如果您想输入位于名为 工作 在 – 的里面 文件夹,您将使用以下格式引用它:

~/work/textdocument.txt

这种语法,使用 ~/,后跟文件在主文件夹中的位置,用于显示 grep 命令要搜索的文件。

比方说,例如,您想查找单词的每一次出现 蜜蜂凡妮莎 在包含 2007 年蜜蜂电影剧本的文本文档中。 语法如下所示:

grep -E 'bee|Vanessa' ~/work/beescript.txt

运行此命令时,您将返回文档中包含该单词的每一行的列表 蜜蜂 或者这个词 凡妮莎.

让我们稍微分解一下这个命令:

grep -E

第一部分运行 grep 命令 -E 选项。 这指示 grep 使用 扩展正则表达式。 不同类型的正则表达式是另一天的主题——掌握正则表达式需要一生的时间——但就本教程而言,bold-E 命令允许您使用 grep 搜索多个字符串。

grep -E 'bee|Vanessa'

下一部分包含您要搜索的字符串。 它们必须包含在单引号中,每个单词之间有一个管道。

grep -E 'bee|Vanessa' ~/work/beescript.txt

grep 调用的最后一部分获取您要搜索的文件的路径; 在这种情况下,剧本到了2007年的蜜蜂电影。

grep 提示和技巧

这是一个很好的开始,但是有很多实用的方法可以使用 grep。 现在您已经知道如何查找多个字符串,下面是一些可以将这种能力提升到新水平的命令:

grep -E 'bee|Vanessa' ~/work/beescript.txt ~/fun/mybeestory.txt

这与前面的命令非常相似,除了它从 Bee 电影脚本和我自己的 Bee 故事文本文件中返回包含 bee 和 Vanessa 的所有行。

不过,所有这些提到蜜蜂的内容都变得很难阅读。

grep -E 'bee|Vanessa' ~/work/beescript.txt ~/fun/mybeestory.txt | less

这需要相同的 grep 命令并将其通过管道输入 较少的. 这将以易于导航的格式打开结果,允许您使用 jķ 键并使用 / 钥匙。

grep -E 'bee|Vanessa' ~/work/beescript.txt ~/fun/mybeestory.txt > beeresults.txt

与 less 命令非常相似,上述命令获取 grep 结果并将它们全部保存到单独的文件中。 然后,您可以在您喜欢的文本编辑器中打开此文件以进行进一步编辑。

相关:Linux 命令参考备忘单

在 Linux 中使用 grep

希望您对 grep 的强大功能有所了解——这甚至还没有触及表面。 去吧,grep!