找回密码
 立即注册
查看: 225|回复: 1

如何在Linux中使用正则表达式

[复制链接]

17

主题

16

回帖

328

积分

中级会员

积分
328
发表于 2025-4-15 14:24:31 | 显示全部楼层 |阅读模式
本帖最后由 freeloop 于 2025-4-15 14:29 编辑

为大家分享如何在Linux中使用正则表达式。

一、grep命令
grep命令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,grep命令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为-,则grep命令会从标准输入设备读取数据。
1.例如在文件file.txt中查找字符串"feifanyun",并打印匹配的行
  1. grep feifanyun file.txt
复制代码

2.在文件夹test中递归查找所有文件中匹配正则表达式"feifancloud"的行,并打印匹配行所在的文件名和行号
  1. grep -r -n pattern feifancloud/
复制代码

3.在标准输入中查找字符串"ffy",并只打印匹配的行数

  1. echo “welcome to ffy” | grep -c ffy
复制代码

二、sed命令

sed命令是利用脚本语言来处理文本文件,sed可依照脚本的指令来处理、编辑文本文件。sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序。
1.只显示ffy.txt文件中的第三行
  1. sed -n ‘3p’ ffy.txt
复制代码

2.只显示ffy.txt文件中的最后一行
  1. sed -n ‘$p’ ffy.txt
复制代码

3.显示ffy.txt文件中的第3-第5行

  1. sed -n ‘3,5p’ ffy.txt
复制代码

4.查找ffy.txt文件中包含we的行

  1. sed -n ‘/we/p’ ffy.txt
复制代码

5.查找ffy.txt文件中以s开头或者以r结尾的行

  1. sed -n '/q$|^s/p' ffy.txt -r
复制代码

6
.删除ffy.txt文件中第2-4行
  1. sed ‘2,4d’ ffy.txt
复制代码

7.在ffy.txt文件中第3行下面插入test

  1. sed ‘3a test’ ffy.txt
复制代码

8.将ffy.txt文件中的:替换成空格

  1. sed 's#:# #g' ffy.txt
复制代码

三、ack命令
ack命令是一个类似于grep的文本搜索工具,专门为搜索代码而设计。它支持正则表达式和高亮显示匹配的文本。
1.安装方式(centos7)
  1. yum -y install ack
复制代码

2.例如在ffy.txt中查找包含weq的行(不区分大小写)

  1. ack -i weq ffy.txt
复制代码
搜索结果会以高亮的形式显示出来。
若需了解更多ack命令的使用方式,可使用man ack查看命令手册。

四、Silver Searcher
ag命令(the silver searcher)是一款用c编写的快速且对开发人员友好的文本搜索工具,针对源代码搜索进行了优化。它与ack类似,但速度更快,可用于搜索代码库。
1.安装方式(centos7)
  1. yum install epel-release
复制代码
  1. yum install the_silver_searcher
复制代码

2.例如在/root/ffy.txt中搜索字符串”ffy”

  1. ag ffy /root/ffy.txt
复制代码
若需了解更多ag命令的使用方式,可使用man ag查看命令手册。

五、ripgrep工具
ripgrep是一款基于Rust语言开发的文本搜索工具,可提供极速是搜索性能,尤其是在处理大型文本文件时,其速度可超越其他同类工具(例如grep、ag)。
1.安装方式(centos7)
  1. sudo curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
复制代码
  1. source $HOME/.cargo/env
复制代码
  1. cargo install ripgrep
复制代码

2.例如在当前目录内的文件中搜索字符串”ffy”
  1. rg ffy
复制代码
若需了解更多rg命令的使用方式,可使用man rg查看命令手册。

8

主题

4

回帖

61

积分

注册会员

积分
61
发表于 3 天前 | 显示全部楼层
水一个
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|非凡云交流社区 ( 蜀ICP备2023029164号-2 )

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表