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

本文将介绍一些用于搜索文本文件中匹配字符串或模式的命令行工具。这些工具通常与正则表达式(缩写为REGEX)一起使用,正则表达式是描述搜索模式的唯一字符串。
1、Grep命令
排在第一位的是grep实用工具,它是Global Regular Expression Print的缩写,也是一个强大的命令行工具,在搜索文件中的特定字符串或模式时非常方便。
Grep默认与现代Linux发行版一起发布,并为您提供了返回各种搜索结果的灵活性。有了grep,你可以执行大量的功能,比如。
搜索文件中的字符串或匹配模式。
搜索Gzipped文件中的字符串或匹配模式。
计算字符串匹配的数量。
打印包含字符串或模式的行号。
递归搜索目录中的字符串。
执行反向搜索(即显示不符合搜索条件的字符串的结果)。
当搜索字符串时,忽略大小写敏感性。
使用grep命令的语法非常简单:

$ grep pattern FILE

例如,要在一个文件中搜索字符串 “Linux”,例如,hello.txt,同时忽略大小写,运行命令:

$ grep -i Linux hello.txt

在这里插入图片描述

2、sed命令
Sed是Stream Editor的缩写,是另一个有用的命令行工具,用于处理文本文件中的文本。Sed以非交互的方式搜索、过滤和替换给定文件中的字符串。
默认情况下,sed命令将输出打印到STDOUT(标准输出),这意味着执行的结果被打印在终端上,而不是保存在文件中。
Sed命令的调用方法如下:

$ sed -OPTIONS command [ file to be edited ]

例如,要用 "Linux "替换 "Unix "的所有实例,调用命令:

$ sed 's/Unix/Linux' hello.txt

在这里插入图片描述

如果要重定向输出而不是在终端上打印输出,请使用( > )如图所示的重定向符号。

$ sed 's/Unix/Linux' hello.txt > output.txt

在这里插入图片描述

命令的输出被保存到output.txt文件中,而不是打印在屏幕上。
3、Ack命令
Ack是一个用Perl编写的快速、便携的命令行工具。Ack被认为是grep工具的友好替代者,并且以一种视觉上吸引人的方式输出结果。
Ack 命令在文件或目录中搜索包含符合搜索条件的行。然后,它突出显示行中匹配的字符串。
Ack能够根据文件的扩展名来区分文件,并在一定程度上区分文件中的内容。
Ack命令语法:

$ ack [options] PATTERN [FILE...]
$ ack -f [options] [DIRECTORY...]

例如,要检查搜索词Linux,请运行:

$ ack Linux hello.txt

在这里插入图片描述

这个搜索工具相当智能,如果用户没有提供文件或目录,它就会在当前目录和子目录中搜索搜索模式。
在下面的例子中,没有提供任何文件或目录,但ack已经自动检测到可用的文件,并搜索提供的匹配模式。

$ ack Linux

在这里插入图片描述

要在系统上安装ACK,请运行命令:

$ sudo apt install ack-grep    [On Debian/Ubuntu]
$ sudo dnf install ack-grep    [On CentOS/RHEL]

4、 Awk命令
Awk是一种成熟的脚本语言,也是一种文本处理和数据处理工具。它搜索包含搜索模式的文件或程序。找到字符串或模式时, awk对匹配项或行进行操作,并将结果打印在STDOUT上。
AWK模式用大括号括起来,而整个程序用单引号括起来。
让我们以最简单的例子为例。假设您正在打印系统日期,如下所示:

$ date

在这里插入图片描述

假设您只想打印第一个值,也就是星期几。在这种情况下,将输出通过管道传输到awk中,如下所示:

$ date | awk '{print $1}'

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

$ date | awk '{print $1,$2}'

上面的命令将显示星期几和月份的日期。
在这里插入图片描述

5、Silver Searcher
silver searcher是一个跨平台、开源的代码搜索工具,类似于ak,但强调速度。它可以让您在最短的时间内轻松搜索文件中的特定字符串。
语法:

$ ag OPTIONS search_pattern /path/to/file

例如,要在文件hello.txt中搜索字符串 “Linux”,请执行命令:

$ ag Linux hello.txt

在这里插入图片描述

这些是几种在Linux中用于搜索,过滤和处理文本的广泛使用的命令行工具。
A5互联https://www.a5idc.net/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值