400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

shell编程之正则表达式(二)sed工具-创新互联

sed 工具

成都网站制作、做网站、外贸营销网站建设服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。创新互联把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!

sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。sed 也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于 Shell 脚本中,用以完成各种自动化处理任务。
sed 的工作流程主要包括读取、执行和显示三个过程。

冲区中(又称模式空间,pattern space)。

1.sed 命令常见用法
通常情况下调用 sed 命令有两种格式,如下所示。其中,“参数”是指操作的目标文件,当存在多个操作对象时用,文件之间用逗号“,”分隔;而 scriptfile 表示脚本文件,需要用“-f”选项指定,当脚本文件出现在目标文件之前时,表示通过指定的脚本文件来处理输入的目标文件。

sed[选项] '操作' 参数
sed [选项] -f scriptfile 参数

常见的 sed 命令选项主要包含以下几种。

以上是 sed 命令的基本用法,sed 命令结合正则表达式时,格式略有不同,正则表达式以“/”包围。例如,以下操作是 sed 命令与正则表达式结合使用的示例。

[root@localhost ~]# sed -n '/the/p' test.txt    
#输出包含the 的行

shell编程之正则表达式(二)sed工具

[root@localhost ~]# sed -n '4,/the/p' test.txt
#输出从第 4 行至第一个包含 the 的行

shell编程之正则表达式(二)sed工具

[root@localhost ~]# sed -n '/the/=' test.txt
#输出包含the 的行所在的行号,等号(=)用来输出行号

shell编程之正则表达式(二)sed工具

[root@localhost ~]# sed -n '/^PI/p' test.txt    
//输出以PI开头的行

shell编程之正则表达式(二)sed工具

[root@localhost ~]# sed -n '/[0-9]$/p' test.txt 
#输出以数字结尾的行

shell编程之正则表达式(二)sed工具

[root@localhost ~]# sed -n '/\/p' test.txt
#输出包含单词wood 的行,\<、\>代表单词边界

shell编程之正则表达式(二)sed工具
删除符合条件的文本(d)
因为后面的示例还需要使用测试文件 test.txt,所以在执行删除操作之前需要先将测试文件备份。以下示例分别演示了 sed 命令的几种常用删除用法。
下面命令中 nl 命令用于计算文件的行数,结合该命令可以更加直观地查看到命令执行的结果。

[root@localhost ~]# nl test.txt | sed '3d'  
#删除第 3 行

shell编程之正则表达式(二)sed工具

[root@localhost ~]# nl test.txt | sed '3,5d'    
#删除第 3~5 行

shell编程之正则表达式(二)sed工具

[root@localhost ~]# nl test.txt |sed '/the/d'
//删除包含the 的行,原本the的行被删除

shell编程之正则表达式(二)sed工具

[root@localhost ~]# sed '/^[a-z]/d' test.txt    
#删除以小写字母开头的行

shell编程之正则表达式(二)sed工具

[root@localhost ~]# sed '/\.$/d' test.txt   
#删除以"."结尾的行

shell编程之正则表达式(二)sed工具

[root@localhost ~]# sed '/^$/d' test.txt    
#删除所有空行

shell编程之正则表达式(二)sed工具
注意: 若是删除重复的空行,即连续的空行只保留一个, 执行“ sed –e ‘/^$/{n;/^$/d}’test.txt”命令即可实现。其效果与“cat -s test.txt”相同,n 表示读下一行数据。
替换符合条件的文本
在使用 sed 命令进行替换操作时需要用到 s(字符串替换)、c(整行/整块替换)、y(字符转换)命令选项,常见的用法如下所示。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站标题:shell编程之正则表达式(二)sed工具-创新互联
URL网址:http://mzwzsj.com/article/djceic.html

其他资讯

让你的专属顾问为你服务