sed--命令详解

sed:字符流编辑器(流编辑器)

功能:用于对文件实现曾删改查(增加,删除,修改,查找),其中查找的2大功能是过滤(过滤指定字符串),取行(取出指定行)。

语法格式:

sed    【选项】  【内置命令字符】   【输入文件】

 

内置字符 a  在指定行后添加一行或多行文本

[root@template ~ 14:37:03]]# cat test.txt
100,zhangsan,ceo
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo
[root@template ~ 14:37:41]]# sed '2a 107,wangchao,ufo' test.txt   #在第二行后添加新的文本
100,zhangsan,ceo
102,wangwu,cto
107,wangchao,ufo
105,liudehua,cio
106,zhangxueyou,uoo

[root@template ~ 14:38:02]]# sed '4a 109,mahan,ooo\n110,liutao,uto' test.txt   #在第四行后添加多行
100,zhangsan,ceo
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo
109,mahan,ooo
110,liutao,uto

内置字符  i 在指定行前添加一行或多行文本

[root@template ~ 14:40:31]]# sed '2i 120,lisi,uuu' test.txt  #在第二行前添加新文本
100,zhangsan,ceo
120,lisi,uuu
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo

 

内置字符  d   删除指定行的文本

[root@template ~ 14:42:06]]# cat test.txt
100,zhangsan,ceo
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo
[root@template ~ 14:43:34]]# sed '2d' test.txt
100,zhangsan,ceo
105,liudehua,cio
106,zhangxueyou,uoo

 

内置字符  s/匹配的内容/替换的内容/--局部替换,s/匹配的内容/替换的内容/g加了g代表全部替换

[root@template ~ 14:47:20]]# cat test.txt
100,zhangsan,ceo
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo
109,wangwu,uuu
[root@template ~ 14:47:28]]# sed 's#zhangsan#lisi#' test.txt   #局部替换
100,lisi,ceo
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo
109,wangwu,uuu

[root@template ~ 14:47:37]]# sed 's#wangwu#lisi#g' test.txt    #全部替换
100,zhangsan,ceo
102,lisi,cto
105,liudehua,cio
106,zhangxueyou,uoo
109,lisi,uuu

 

内置字符    p  打印匹配的内容  

[root@template ~ 14:48:16]]# sed '2p' test.txt   #打印出第二行的内容,全部输出是因为sed默认输出的功能
100,zhangsan,ceo
102,wangwu,cto
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo
109,wangwu,uuu

参数 -n   取消默认输出

[root@template ~ 14:51:29]]# cat test.txt
100,zhangsan,ceo
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo
109,wangwu,uuu
[root@template ~ 14:51:37]]# sed -n '2,4p' test.txt
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo

参数 -i  修改内存上的数据的同时也修改了磁盘上的数据

[root@template ~ 14:51:29]]# cat test.txt
100,zhangsan,ceo
102,wangwu,cto
105,liudehua,cio
106,zhangxueyou,uoo
109,wangwu,uuu

[root@template ~ 14:51:42]]# sed -i '2d' test.txt
[root@template ~ 14:54:33]]# cat test.txt
100,zhangsan,ceo
105,liudehua,cio
106,zhangxueyou,uoo
109,wangwu,uuu

posted on 2021-03-11 14:57  弓长三寿  阅读(176)  评论(0编辑  收藏  举报