sed常见用法,删除匹配行的上2行,下3行

删除匹配的下一行到最后一行

[root@test200 ~]# cat test
a
b
c
d
e
f
[root@test200 ~]# sed '/c/{p;:a;N;$!ba;d}' test
a
b
c

定义一个标签a,匹配c,然后N把下一行加到模式空间里,匹配最后一行时,才退出标签循环,然后命令d,把这个模式空间里的内容全部清除。

if 匹配"c"
:a
追加下一行
if 不匹配"$"
goto a
最后退出循环,d命令删除。

删除匹配行和匹配行后的2行

[root@jiangyi01.sqa.zmf /home/ahao.mah/syslog-ng/muahao_tools]
#cat file
hello muahao
I am good
123 1
this is jack
this is jack
fffff
gg

like this

[root@jiangyi01.sqa.zmf /home/ahao.mah/syslog-ng/muahao_tools]
#sed '/muahao/,+1d' file
123 1
this is jack
this is jack
fffff
gg

like this

[root@jiangyi01.sqa.zmf /home/ahao.mah/syslog-ng/muahao_tools]
#sed '/muahao/,+2d' file
this is jack
this is jack
fffff
gg

like this

posted @ 2017-01-16 19:19  苏小北1024  阅读(20113)  评论(0编辑  收藏  举报