Advertisement

6个使用正则表达式搜索文本中内容的工具

阅读量:
本指南介绍了一些命令行工具,这些工具可用于搜索文本文件中的匹配字符串或模式。这些工具通常与正则表达式一起使用。

grep命令

最初出现的是grep实用工具——它被称为Global Regular Expression Print的首字母缩写,在处理文件中的特定字符串或模式方面非常高效。

例如,在不区分大小写的场景下查找文件sshd_conf.txt中的所有包含ssh字符串的行。为了实现这一目标,请执行以下操作:

复制代码
6个使用正则表达式搜索文本中内容的工具6个使用正则表达式搜索文本中内容的工具

想要了解更多关于grep命令的使用方式,可以查看grep的手册:man grep

sed命令

sed 是 Stream Editor 的缩写,在处理文本文件时执行操作。 sed 以一种非交互的方式从给定的文件中搜索、筛选并替换字符串。

通常情况下,默认运行sed命令会导致其输出直接发送至标准输出窗口;这表明运行后的结果显示将在终端界面显示而非被存储到文件中。

为了将文件/etc/se[linux](https://www.linuxprobe.com/ "linux")/config中的SELINUX参数从enforcing设置为disabled,请参考下面的命令:

复制代码
6个使用正则表达式搜索文本中内容的工具6个使用正则表达式搜索文本中内容的工具

修改之后,保存退出,重启操作系统,这样可以关闭selinux。

想要了解更多关于sed命令的使用方式,可以查看sed的手册:man sed

ack命令

使用 Perl 编写的高效且跨平台的命令行工具 Ack 被认为是 grep 的替代方案,并采用更具视觉吸引力的方式展示结果。该程序能够在文件或目录中查找符合特定搜索条件的所有行,并在发现符合条件的内容后高亮显示每行中的匹配字符串。

安装方式(Centos7系统):

复制代码

例如,要在sshd_conf.txt中查找包含ssh的行,不区分大小写,请运行:

复制代码
6个使用正则表达式搜索文本中内容的工具6个使用正则表达式搜索文本中内容的工具

搜索出来的关键字会以高亮的方式显示出来。

该搜索工具具有高度智能化的能力。在没有用户提供具体文件或 directory 的情况下,在 current 目录及其子 directory 中进行扫描。然而,在 directories and subdirectories 中自动识别并提取了符合特定字符串匹配条件的所有 file 路径及内容。

复制代码
6个使用正则表达式搜索文本中内容的工具6个使用正则表达式搜索文本中内容的工具

想要了解更多关于ack命令的使用方式,可以查看ack的手册:man ack

awk命令

awk是一种功能强大的脚本语言,也被广泛应用于文本与数据处理工作中。让我们从一个简明扼要的例子入手:假设我们想打印当前系统的日期信息,并仅关注星期几这一项。在这种情况下,我们将输出结果通过标准输入管道连接至awk执行以下操作:

复制代码

要显示后面的值,请使用逗号分隔它们,如下所示:

复制代码
6个使用正则表达式搜索文本中内容的工具6个使用正则表达式搜索文本中内容的工具

希望进一步了解awk命令的操作方法?访问以下网页获取更多信息:文章来源 新闻来源

Silver Searcher工具

Silver Searcher是一款类似于Ack的跨平台开源代码搜索工具,并且追求快速响应效率。它能够以最快的速度高效地定位文件中的特定字符串:

安装方式(Centos7):

复制代码

例如,在/etc/passwd文件中搜索字符串"nologin",使用以下命令:

复制代码
6个使用正则表达式搜索文本中内容的工具6个使用正则表达式搜索文本中内容的工具

希望进一步了解关于Silver Searcher工具的使用方法的人,请参考ag的手册:man ag

ripgrep工具

该程序为 ripgrep 命令行工具。
这是一个用于匹配正则表达式的跨平台实用程序。
相比之前介绍的所有搜索工具, 该程序运行速度更快, 并支持通过递归目录查找符合条件的结果。
在处理效率与性能上无可匹敌

在默认设置下, ripgrep会跳过二进制文件及隐藏的文件和目录.此外, 在默认设置下, 它也不会扫描那些被.gitignore/.ignore/.rgignore标记所忽略的文件.

安装ripgrep(Centos7):

复制代码

例如,要在当前目录内的文件中搜索字符串“Linux”,请运行以下命令:

复制代码
6个使用正则表达式搜索文本中内容的工具6个使用正则表达式搜索文本中内容的工具

想要了解更多关于ripgrep命令的使用方式,可以查看rg的手册:man rg

总结

这些是Linux中用于搜索、过滤和操作文本的最广泛使用的命令行工具。

全部评论 (0)

还没有任何评论哟~