在下面的文章中,我们将看到一些 用于在文本文件中查找匹配的字符串或模式的命令行工具。 这些工具通常与正则表达式结合使用,缩写为 正则表达式,这是描述搜索模式的唯一字符串。
正则表达式是用于在文本字符串中查找字符的特定组合的模式。 正则表达式提供了一种非常灵活的方式来搜索或识别文本字符串。 尽管在以下几行中我们将看不到正则表达式,但我们将使用模式或字符串。
从终端搜索字符串或模式
Grep命令
Grep是的首字母缩写 全局正则表达式打印。 这是一个功能强大的命令行工具,在文件中查找特定的字符串或模式时非常有用。 与grep 我们将能够使用多种功能,例如同事在不久前在此博客中向我们解释的功能。
使用grep命令的语法非常简单:
grep PATRON [RUTA AL ARCHIVO]
例如,要搜索字符串“Ubuntu'在本例中我们将调用的文件中 text.txt,不考虑大小写的区别,在终端(Ctrl + Alt + T)中,我们只需要执行以下命令:
grep -i Ubuntu texto.txt
命令sed
口渴的简称 流编辑器。 对于终端,这是另一个有用的工具,我们可以使用该工具来处理文件中的文本。 sed搜索,过滤和替换给定文件中的字符串.
sed命令默认情况下将输出打印在 标准输出 (标准输出)。 这意味着执行结果将打印到终端,而不是保存到文件。
Sed命令可以按如下方式使用:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
例如,要替换所有出现的“Linux“在文字中”GnuLinux的',将使用以下命令:
sed 's/Linux/GnuLinux/g' texto.txt
如果我们正在寻找的是 将输出重定向到文件,而不是将其打印到终端,我们将使用重定向符号,如下所示:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
命令的输出保存在文件中 output.txt 而不是在屏幕上打印。
要查看更多选项,您可以 查阅手册页:
man sed
阿克
Ack是用Perl编写的快速命令行工具。 它被认为是grep实用程序的友好替代品,这也以视觉上吸引人的方式生成结果。
至 安装确认 在我们的系统中,我们将必须在终端中执行(Ctrl + Alt + T):
sudo apt install ack
命令 Ack在文件或目录中搜索包含与搜索条件匹配的行。 然后突出显示相应的字符串。 此工具具有根据文件扩展名区分文件的功能。
Ack命令的语法如下所示
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
例如,搜索词 Linux 在文件中,我们将必须执行:
ack Linux texto.txt
搜索工具非常聪明, 如果用户不提供任何文件或目录,它将在当前目录和子目录中搜索搜索模式.
在以下示例中,没有提供文件或目录。 Ack自动检测目录中的可用文件并查找匹配的模式:
ack Linux
里普格普
里普格普 是用于搜索正则表达式模式的跨平台实用程序。 它比上面提到的所有搜索工具都快,并且它以递归方式搜索目录中的匹配模式。 它还允许您搜索特定的文件类型。 默认情况下,ripgrep将跳过二进制文件和隐藏的文件/目录。
至 安装ripgrep 在系统上,您所要做的就是在终端中运行以下命令(Ctrl + Alt + T):
sudo apt install ripgrep
使用ripgrep的语法非常简单:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
如果我们要搜索链“Linux在当前目录内的文件中,我们只需执行以下命令:
rg Linux
要查看更多选项,用户可以使用 手册页:
man rg
银牌搜寻者
至 安装此工具在Ubuntu中,我们只需要打开一个终端(Ctrl + Alt + T)并编写以下命令:
sudo apt install silversearcher-ag
Silver Searcher是类似于ack的跨平台,开放源代码搜索工具,但着重于速度。 它使您可以在最短的时间内轻松找到文件中的特定字符串。 使用的语法为:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
例如,搜索“Linux文件中的“ text.txt,我们将不得不在终端中输入内容(Ctrl + Alt + T):
ag Linux texto.txt
要查看更多选项,我们可以咨询 手册页:
man ag
这些只是在Linux中用于搜索,过滤和处理文本的一些最常用的命令行工具。