Grep是全局正则表达式打印的简称。它是Linux系统工程师在普通文件和系统中寻找某个文本或模式时使用的一个有用工具。Grep是Linux和Unix中的一个基本命令。它用于寻找文件中的文本和字符串。换句话说,grep命令在一个给定的文件中寻找与提供的字符串或单词相匹配的行。它是Linux和类Unix系统中对程序员和系统管理员最有用的命令之一。今天我们将接触到的grep工具,是一个与egrep和fgrep工具相关的Linux工具。所有这些都是Linux工具,用于以重复的方式搜索你的文件,包括文本。grep命令可以用来搜索文件和它们的内容,以检索重要信息。它经常被用来过滤掉不相关的细节,同时只报告大型日志文件中需要的信息。
本教程将向你展示如何利用正则表达式的Grep来进行高级字符串搜索,并提供真实世界的例子。本文中的许多例子都有现实世界的应用,因此你可以在日常的Linux编程中使用它们。下面的例子说明了如何使用grep来寻找经常被搜索的模式。
grep的语法
在其最简单的形式中,grep命令由三部分组成。grep命令排在第一位,后面是你要检查的模式。字符串后面是grep寻找的文件名。
最基本的grep命令的语法如下。
grep [OPTIONS] PATTERN [FILE...]
Grep的安装
虽然大多数Linux系统在设计时就已经安装了grep工具,但如果你没有它,请按照以下步骤操作。
使用Dashboard应用程序区或Ctrl+Alt+T快捷键,启动Ubuntu终端。然后,作为根用户,运行以下命令,使用apt-get命令下载grep。
$ sudo apt-get install grep

例子1
如前所述,grep命令是用来搜索文本文件中的 "字符串 "的。因此,最初,我们必须在Ubuntu 20.04 Linux系统中用touch命令的帮助下创建一个文件。
$ touch test1.txt

我们将文件命名为 "test1.txt"。你可以根据你的需要来命名它。执行上述命令后,你将在Ubuntu 20.04 Linux系统的主目录下看到创建的文件,如下面的截图所示。

最初,该文件是空的;你可以在其中添加需要的文本。我们已经添加了与Ubuntu系统相关的信息。将内容添加到文件后,你可以通过点击 "保存 "按钮或使用快捷键 "Ctrl+S "来保存它。之后,你可以关闭该文件

现在是在上述文件中搜索字符串的时候了。我们要从上述步骤中创建的文件中搜索一个字符串 "Ubuntu"。你可以从你添加到文件的内容中选择你想要的字符串。执行以下命令,在Ubuntu 20.04 Linux系统中使用grep命令搜索字符串。
$ grep "Ubuntu" test1.txt

你可以检查一下,在相关文件的名称后面,我们要搜索的字符串是用反斜线提到的。输出结果用红色突出了所需的字符串。
例2
如果你想从同一个名为 "internet access "的文件中搜索任何其他字符串,你必须在Ubuntu 20.04 Linux系统中使用grep命令来搜索字符串。
$ grep "internet access" test1.txt

同样,反转的逗号表示我们打算在相关文件的名称之前搜索一个字符串。所需的字符串在结果中以红色显示。
例3
在这个例子中,我们将搜索文件中的字符串。为此,我们必须在Ubuntu 20.04 Linux系统中,在touch命令的帮助下创建另一个文件。
$ touch test2.txt

"test2.txt "是我们文件的名称。你可以给它起任何你喜欢的名字。执行上述命令后,你会在Ubuntu 20.04 Linux系统的主目录中看到创建的文件,如下图所示。

该文件开始时是空的;你可以在里面写上你需要的任何文字。我们已经添加了关于Ubuntu 20.04操作系统的信息。在你完成向文件添加内容后,你可以通过点击 "保存 "按钮或使用快捷键 "Ctrl+S "来保存它。之后,你可以保留该文件并关闭它。

现在是时候在我们之前创建的两个文件中寻找字符串了。我们需要在两个文件中寻找 "Ubuntu "这个字符串。你可以从你的文件中包含的内容中选择你喜欢的字符串。要在Ubuntu 20.04 Linux系统的许多文件中搜索一个字符串,请运行以下命令。
$ grep "Ubuntu" test1.txt test2.txt

你也可以写出两个以上的文件的名称。
总结
在本教程中,我们研究了使用Grep Linux命令来搜索和查找文本文件中的字符串。然后你可以利用它来寻找过滤后的结果,其中可能包括文件或文件内容。这为你节省了大量的精力,在学习使用grep命令之前,你会花时间扫描所有的搜索结果。如果你现在了解了Linux的搜索功能有多强大,那就最好不过了。