云服务器
产品概述
购买指南
快速入门
操作指南
技术教程
Linux如何安装配置Redis
Linux如何搭建LNMP环境
Linux如何查看端口监听情况
Linux实例如何配置中文支持
云服务器常用端口作用
如何在CentOS中安装Docker
如何在Linux中使用正则表达式
如何安装宝塔Linux面板
如何安装配置Nginx
如何搭建Discuz!论坛
如何搭建WordPress站点
Linux如何搭建FTP服务
云服务器
如何在Linux中使用正则表达式

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

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

一、grep命令

grep命令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,grep命令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为-,则grep命令会从标准输入设备读取数据。

1.例如在文件file.txt中查找字符串"feifanyun",并打印匹配的行

grep feifanyun file.txt


2.在文件夹test中递归查找所有文件中匹配正则表达式"feifancloud"的行,并打印匹配行所在的文件名和行号

grep -r -n pattern feifancloud/


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

echo “welcome to ffy” | grep -c ffy


二、sed命令

sed命令是利用脚本语言来处理文本文件,sed可依照脚本的指令来处理、编辑文本文件。sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序。

1.只显示ffy.txt文件中的第三行

sed -n ‘3p’ ffy.txt


2.只显示ffy.txt文件中的最后一行

sed -n ‘$p’ ffy.txt


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

sed -n ‘3,5p’ ffy.txt


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

sed -n ‘/we/p’ ffy.txt


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

sed -n '/q$|^s/p' ffy.txt -r


6.删除ffy.txt文件中第2-4行

sed ‘2,4d’ ffy.txt


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

sed ‘3a test’ ffy.txt


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

sed 's#:# #g' ffy.txt


三、ack命令

ack命令是一个类似于grep的文本搜索工具,专门为搜索代码而设计。它支持正则表达式和高亮显示匹配的文本。

1.安装方式(centos7)

yum -y install ack


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

ack -i weq ffy.txt 搜索结果会以高亮的形式显示出来。

若需了解更多ack命令的使用方式,可使用man ack查看命令手册。


四、Silver Searcher

ag命令(the silver searcher)是一款用c编写的快速且对开发人员友好的文本搜索工具,针对源代码搜索进行了优化。它与ack类似,但速度更快,可用于搜索代码库。

1.安装方式(centos7)

yum install epel-release

yum install the_silver_searcher


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

ag ffy /root/ffy.txt

若需了解更多ag命令的使用方式,可使用man ag查看命令手册。


五、ripgrep工具

ripgrep是一款基于Rust语言开发的文本搜索工具,可提供极速是搜索性能,尤其是在处理大型文本文件时,其速度可超越其他同类工具(例如grep、ag)。

1.安装方式(centos7)

sudo curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

source $HOME/.cargo/env

cargo install ripgrep


2.例如在当前目录内的文件中搜索字符串”ffy”

rg ffy

若需了解更多rg命令的使用方式,可使用man rg查看命令手册。