5 款使用正则表达式搜索纯文本数据的最佳 CLI 工具

linuxoperating systemopen source更新于 2026/2/4 20:22:17

在编程领域,命令行界面 (CLI) 工具在简化我们的日常工作方面发挥着重要作用。它们帮助我们用简单的命令执行复杂的任务,使用正则表达式搜索纯文本数据也不例外。正则表达式是一种强大的字符串模式匹配方法,并且许多 CLI 工具都支持正则表达式。在本文中,我们将讨论 5 款使用正则表达式搜索纯文本数据的最佳 CLI 工具。

Grep

Grep 是使用正则表达式搜索纯文本数据最常用的 CLI 工具。它是一个命令行实用程序,用于在文件或通过管道传递的输入中搜索模式。 Grep 的全称是"全局正则表达式打印",它几乎适用于所有基于 UNIX 的系统,包括 Linux 和 macOS。

这里有一个使用 grep 在文件中搜索字符串的简单示例 -

grep "pattern" file.txt

在上面的命令中,我们在 file.txt 文件中搜索单词"pattern"。 Grep 将在文件中搜索模式,并打印出所有与模式匹配的行。

Grep 支持多种选项来自定义搜索,例如:-

  • -i - 不区分大小写搜索

  • -r - 递归搜索

  • -n - 显示匹配行的行号

  • -v - 显示与模式不匹配的行

以下是使用 -i 选项执行不区分大小写搜索的示例:-

grep -i "pattern" file.txt

在此命令中,grep 将在 file.txt 文件中搜索单词"pattern",不区分字母的大小写。

Ack

Ack 是一个类似于 grep 的 CLI 工具,但有一些额外的功能使其更易于使用的功能。Ack 代表"确认",旨在成为 grep 更快、更高效的替代方案。 Ack 适用于基于 UNIX 的系统和 Windows。

以下是使用 ack 在文件中搜索字符串的示例 -

ack "pattern" file.txt

在此命令中,ack 将在 file.txt 文件中搜索单词"pattern",并打印出所有与模式匹配的行。

Ack 支持多种选项来自定义搜索,例如 -

  • -i - 不区分大小写搜索

  • -r - 递归搜索

  • -n - 显示匹配行的行号

  • -v - 显示与模式不匹配的行

  • --color - 用颜色突出显示匹配的模式

以下是使用 --color 选项突出显示匹配模式的示例颜色匹配的图案 −

ack --color "pattern" file.txt

在此命令中,ack 将在 file.txt 文件中搜索单词"pattern",并用颜色高亮显示匹配的模式。

Ag

Ag 是另一个类似于 grep 和 ack 的 CLI 工具,但它具有一些附加功能,使其搜索代码更高效。Ag 代表"银色搜索器",它旨在成为 grep 和 ack 的更快、更高效的替代方案。 Ag 适用于基于 UNIX 的系统和 Windows。

以下是使用 ag 在文件中搜索字符串的示例 -

ag "pattern" file.txt

在此命令中,ag 将在 file.txt 文件中搜索单词"pattern",并打印出与模式匹配的所有行。

Ag 支持多种选项来自定义搜索,例如 -

  • -i - 不区分大小写搜索

  • -r - 递归搜索

  • -n - 显示匹配行的行号

  • --color - 用颜色突出显示匹配的模式

  • --ignore-case - 不区分大小写搜索

  • --smart-case - 不区分大小写搜索默认情况下,但如果模式包含大写字母,则区分大小写。

以下是使用 --ignore-case 选项执行不区分大小写的搜索的示例 -

ag --ignore-case "pattern" file.txt

在此命令中,ag 将在 file.txt 文件中搜索单词"pattern",不区分字母的大小写。

Ripgrep

Ripgrep 是一个命令行工具,其设计速度甚至比 ag 更快。它基于 Rust 的正则表达式引擎构建,这使得它比其他 grep 替代方案更快、更高效。 Ripgrep 适用于基于 UNIX 的系统和 Windows。

以下是使用 ripgrep 在文件中搜索字符串的示例 -

rg "pattern" file.txt

在此命令中,ripgrep 将在 file.txt 文件中搜索单词"pattern",并打印出所有与模式匹配的行。

Ripgrep 支持多种选项来自定义搜索,例如 -

  • -i - 不区分大小写的搜索

  • -r - 递归搜索

  • -n - 显示匹配行的行号

  • --color - 用颜色突出显示匹配的模式

  • --ignore-case - 不区分大小写搜索

  • --smart-case − 默认不区分大小写搜索,但如果模式包含大写字母则区分大小写。

  • --vimgrep − 以与 Vim 快速修复列表兼容的格式输出结果。

以下是使用 --vimgrep 选项以与 Vim 快速修复列表兼容的格式输出结果的示例 −

rg --vimgrep "pattern" file.txt

在此命令中,ripgrep 将在 file.txt 文件中搜索单词"pattern",并以 Vim 快速修复列表可用的格式输出结果。

Sift

Sift 是一个 CLI 工具,旨在成为 ack、ag 和 ripgrep 的更快、更高效的替代方案。它基于 Rust 的正则表达式引擎构建,并且比我们迄今为止讨论过的所有其他 CLI 工具都更快。 Sift 适用于基于 UNIX 的系统和 Windows。

以下是使用 sift 在文件中搜索字符串的示例 -

sift "pattern" file.txt

在此命令中,sift 将在 file.txt 文件中搜索单词"pattern",并打印出所有与模式匹配的行。

Sift 支持多种选项来自定义搜索,例如 -

  • -i - 不区分大小写搜索

  • -r - 递归搜索

  • -n - 显示匹配行的行号

  • --color - 用颜色突出显示匹配的模式

  • --ignore-case - 不区分大小写搜索

  • --smart-case -默认情况下不区分大小写,但如果模式包含大写字母,则区分大小写。

  • --no-color - 禁用彩色输出。

以下是使用 --no-color 选项禁用彩色输出的示例 -

sift --no-color "pattern" file.txt

在此命令中,sift 将在 file.txt 文件中搜索单词"pattern",并打印出所有与模式匹配的行,但不进行任何颜色突出显示。

结论

在本文中,我们讨论了 5 个使用正则表达式搜索纯文本数据的最佳 CLI 工具。这些工具对于需要快速高效地搜索大量文本数据的程序员和开发人员来说至关重要。这些工具各有特色,值得一试,找到最适合你的一款。

Grep 是最常用的 CLI 工具,几乎在所有基于 UNIX 的系统上都可用。Ack 旨在成为 grep 的更快、更高效的替代方案,并支持多种自定义搜索选项。Ag 是另一个针对代码搜索进行了优化的 grep 替代方案。Ripgrep 基于 Rust 的正则表达式引擎构建,速度甚至比 ag 更快。Sift 是我们迄今为止讨论过的最快的 CLI 工具,它支持我们在其他工具中看到的所有选项。

无论您是经验丰富的程序员还是初学者,掌握这些 CLI 工具都可以节省大量时间和精力。它们使在大量数据中搜索模式变得更容易、更高效。所以,赶快尝试一下吧!


相关文章


有用资源