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 中使用 grep
希望您对 grep 的强大功能有所了解——这甚至还没有触及表面。 去吧,grep!