sed命令完全攻略

sed命令攻略

简介:sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

sed选项

-n 使用安静模式.则只有经过sed特殊处理的哪一行才会被列出来
-e 传送带(前面执行完传递给后面)
-f 跟随脚本文件名
-r 脱意
-i 直接修改读取文件

sed命令

命令简介
n读取下一个输入行, 用下一个命令处理新的行
N读取匹配到的行的下一行追加至模式空间
h把模式空间中的内容覆盖至保持空间中
H把模式空间中的内容追加至保持空间中
g表示行内全面替换
G从保持空间取出内容追加至模式空间
x把模式空间中的内容与保持空间中的内容进行互换
p会打印与替换命令中指定的模式匹配的行。此标记通常与 -n 选项一起使用。
P打印模式空间开端至\n内容,并追加到默认输出之前
d删除,因为是删除啊,所以 d 后面通常不接任何东西
D如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本, 并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间 不包含换行符,则会像发出d命令那样启动正常的新循环
y传送字符,替换单个字符
c取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
a新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
## a的用法
##在第5行下一行添加zwl
[root@zabbix ~]# sed '5azwl' zwl
a
b
c
d
e
zwl
##在匹配到的参数下一行添加zwl
[root@zabbix ~]# sed '/b/azwl' zwl
a
b
zwl
c
d
e
##c的用法
##将第2行,修改成zwl
[root@zabbix ~]# sed '2czwl' zwl
a
zwl
c
d
e
#将匹配到的参数修改成zwl
[root@zabbix ~]# sed '/c/czwl' zwl
a
b
zwl
d
e
[root@zabbix ~]#
##d的用法
##将第3行删除
[root@zabbix ~]# sed '3d' zwl
a
b
d
e
[root@zabbix ~]#
##将匹配到的参数删除
[root@zabbix ~]# sed '/b/d' zwl
a
c
d
e
##i的用法
##在第3行插入zwl
[root@zabbix ~]# sed '3izwl' zwl
a
b
zwl
c
d
e
##在匹配到的参数前一行插入zwl
[root@zabbix ~]# sed '/b/izwl' zwl
a
zwl
b
c
d
e
##p的用法
[root@zabbix ~]# sed -n '/c/p' zwl
c
加上sed -n相当于打印模式空间的文本
##s的用法	
##将匹配的每行里的第一个参数进行替换
[root@zabbix ~]# sed 's/b/g/' zwl
a
g
c
d
e
##如果一行类出现多次参数,就会出现以下问题
[root@zabbix ~]# sed 's/b/g/' zwl
a
gbbdd
c
d
e
##想要全面替换,需要加上g
[root@zabbix ~]# sed 's/b/g/g' zwl
a
gggdd
c
d
e
##n的用法
[root@zabbix ~]# sed -n '/a/n;p' zwl
bbbdd
c
d
e
[root@zabbix ~]#

h、g、G的简单用法

#将匹配到的a复制到,保持空间,再匹配b时,将保持空间的文本追加回来
[root@zabbix ~]# sed '/a/{h};/b/{G}' zwl
a
b
a
c
d
e
#将匹配到的a复制到保持空间,并删除,再匹配b时将保持空间的文本复制回来
[root@zabbix ~]# sed '/a/{h;d};/b/{g}' zwl
a
c
d
e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值