sed处理文本的常用命令
admin
2023-01-23 22:42:29
0

sed 是一个文本处理工具,可以将数据进行替换、新增、选取等特定工作

格式
sed 选项 动作 文件名

使用sed替换文件中某个域的字段
比如写的一个yaml文件中间有个字段需要修改,可以使用sed在外面命令行进行替换
格式:sed 's/原字符/新的字符/‘ 文件名

[root@zhaocheng ~]# sed 's/systemctl/service/' filetest 
root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7
bin:*:17834:0:99999:7:dad
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld
dadad:nginx:sdada

上面输出的只会输出到屏幕上,并不会修改文件,如果直接替换可以添加-i

[root@zhaocheng ~]# sed -i 's/systemctl/service/' filetest 
[root@zhaocheng ~]# cat filetest 
root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7
bin:*:17834:0:99999:7:dad
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld
dadad:nginx:sdada

sed 参数含义指令

常用命令:
a 新增
c 取代
d 删除
i 插入
p 列印
s 取代

删除某行
如果处理文本的时候需要进行一些行的删除,可以使用d,代表删除
不加sed -i 不会删除,不加只会显示屏幕上

[root@zhaocheng]# sed '1d' filetest                     //删除第一行
[root@zhaocheng]# sed '$d' filetest                    //删除最后一行
[root@zhaocheng]# sed '1,2d' filetest                 //删除第一行到第二行
[root@zhaocheng]# sed '3,$d' filetest                  //删除第三行到最后一行

显示某行
比如处理文本的时候需要提取文本的某个某行

[root@zhaocheng]# sed -n '1p' filetest                //显示第一行 
[root@zhaocheng]# sed -n '$p' filetest                //显示最后一行
[root@zhaocheng]# sed -n '1,2p' filetest            //显示第一行到第二行
[root@zhaocheng]# sed -n '3,$p' filetest            //显示第三行到最后一行

使用模式进行查询
比如处理比较大的文本想找出这个字段,那么直接可以使用-n 参数显示,动作指定需要提取的关键词,p进行打印

[root@zhaocheng]# sed -n '/bin/p' filetest        //查询包括关键字bin所在所有行

[root@zhaocheng]# sed -n '/\$/p' filetest 
service start mysqld$

//查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义,不然识别不出

新增一行或者多行字符串
比如处理文本进行添加字段,并指定添加到某行,可以使用a,是增加,1a就是在第一行下去增加,如果字段比较多可以使用在vim中使用set nu,显示行号,或者直接在命令行使用cat -n 直接显示行号,在命令行使用sed '行数a xxxxxx 文件名
在第一行的下面新增一行

[root@zhaocheng ~]# sed '1a sed is very useful' filetest 
bin:*:17834:0:99999:7:dad
sed is very useful
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld$
dadad:nginx:sdada%

在第2行与第3行增加sed is very useful

[root@zhaocheng ~]# sed '2,3a sed is very useful' filetest 
bin:*:17834:0:99999:7:dad
lp:*:17834:0:99999:7ada
sed is very useful
sync:*:17834:0:99999:7:::gg
sed is very useful

进行替代行,这里我将第一行替换成kuberntes,1c就是第一行,c就是替换

[root@zhaocheng ~]# sed '1c kubernetes' filetest 
kubernetes
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld$
dadad:nginx:sdada%

将这个文本的最后一行添加jenkins,$就是最后一行,a是添加

[root@zhaocheng ~]# sed -i '$a jenkins' filetest
[root@zhaocheng ~]# cat filetest
hellp
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%
jenkins

删除匹配的行,匹配的jenkins这个行,进行删除

[root@zhaocheng ~]# sed -i '/jenkins/d' filetest
[root@zhaocheng ~]# cat filetest
hellp
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%

匹配文本中带#的并删除掉,这里使用^以#开头/d是删除

[root@zhaocheng ~]# cat filetest
#hellp
#sync:*:17834:0:99999:7:::gg
#shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%
[root@zhaocheng ~]# sed -i '/^#/d' filetest
[root@zhaocheng ~]# cat filetest
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%

删除文本中每行的首数字

[root@zhaocheng ~]# cat filetest
1fghjkl
2ghjkl;'
3fghjkl;
4dfghjkl;
[root@zhaocheng ~]# sed -i 's/^[0-9]//g' filetest
[root@zhaocheng ~]# cat filetest
fghjkl
ghjkl;'
fghjkl;
dfghjkl;

相关内容

热门资讯

苏州正式设立人工智能发展办公室 新京报讯 据“苏州发布”微信公众号消息,近日,苏州市正式设立人工智能发展办公室,进一步统筹苏州市人工...
警方通报“16岁高中生被刺死”... 7月22日,内蒙古乌拉特前旗公安局针对“16岁高中生被刺死,事发地疑为涉黄场所”发布警情通报,通报关...
达观数据陈运文:智能体竞争,正... 随着AI智能体加速进入产业应用,市场规模持续增长,但企业关注的重点正在发生变化。 中商产业研究院发布...
磁力混合器突破3D生物打印细胞... 3D生物打印是生物工程领域的重要技术,通过将活细胞混入柔性水凝胶(即"生物墨水")来打印活体组织,广...
王兴兴:做好准备迎接即将突破的... 王兴兴在开幕式上发表演讲。 王兴兴在演讲中提到,宇树科技成立于2016年,经过近10年努力,已经成为...
不排除提告!屡遭苏巧慧阵营抹黑... 海峡导报综合报道 国民党新北市长参选人李四川的板桥房产问题屡遭绿营质疑,对手苏巧慧阵营再度指控李四川...
俄外长:将在马尼拉同鲁比奥会晤... 据凤凰卫视报道,正在菲律宾出席东盟外长会的俄罗斯外长拉夫罗夫7月22日表示,他将于23日上午在马尼拉...
小鸭洗衣机皮带修理方法 小鸭洗衣机皮带在长时间使用过程中,可能会出现磨损或者老化,导致洗衣机无法转动或者转速变慢。这时候,我...
小天鹅洗衣机坏了怎么修理 小天鹅洗衣机是一种非常优秀的家用电器,但是由于长期使用或人为原因,也会存在各种故障。如果你的小天鹅洗...
洗衣机玻璃坏了怎么修理 如果你的洗衣机玻璃坏了,你可以尝试进行一些修理,如果你有经验。然而,如果你没有经验,我们建议你找一个...