寻找着某样东西?如何在 Linux 中 grep 多个字符串
grep 命令是在整个系统中查找多个文本字符串的完美方法。了解如何去做!
Linux 终端充满了有用的命令,但很少有像看似简单的 grep 那样强大。它代表全局正则表达式打印,打印用户定义的系统搜索字符集合的结果。
grep 非常强大,但使用起来却相当令人生畏,所以今天,您将学习一些基础知识。如果您要在计算机上的文档中查找某些信息,通常您会同时查找多个单词。
本文重点介绍如何使用 grep 搜索多个字符串,并将向您展示一些一般使用 grep 的类似提示和技巧。
在 grep 中搜索多个字符串
在开始之前,您需要确保熟悉一些 Linux 基础知识。首先,您需要能够打开终端 - 在大多数系统上,您可以使用组合键 Ctrl + Alt + T 或通过应用程序菜单来执行此操作。
您还需要熟悉如何使用终端按路径引用文件。例如,如果您想输入位于 home 文件夹内名为 work 的文件夹中的文本文档的路径,则可以使用以下格式引用它:
~/work/textdocument.txt
此语法使用 ~ 和 /,后跟主文件夹中文件的位置,用于显示 grep 命令要搜索哪些文件。
举例来说,您希望在包含 2007 年 Bee 电影剧本的文本文档中查找单词 bee 和 Vanessa 的每次出现。语法如下:
grep -E 'bee|Vanessa' ~/work/beescript.txt
运行此命令时,您将获得文档中包含单词 bee 或单词 Vanessa 的每一行的列表。
让我们稍微分解一下该命令:
grep -E
第一部分使用 -E 选项运行 grep 命令。这会指示 grep 使用 E 扩展正则表达式进行搜索。不同类型的正则表达式是另一天的主题,掌握正则表达式需要一生的时间,但就本教程而言,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 命令并将其通过管道传输到 less 中。这将以易于导航的格式打开结果,允许您使用 j 和 k 键上下滚动,并使用 在结果中搜索/ 键。
grep -E 'bee|Vanessa' ~/work/beescript.txt ~/fun/mybeestory.txt > beeresults.txt
与 less 命令非常相似,上述命令获取 grep 结果并将它们全部保存到单独的文件中。然后,您可以在您喜欢的文本编辑器中打开该文件以进行进一步编辑。
相关:Linux 命令参考备忘单
在 Linux 中使用 grep
希望您能够了解 grep 的强大功能,而这还只是皮毛。继续前进,然后 grep!