删除匹配的下一行到最后一行 [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行…
原创文件,欢迎阅读,禁止转载. 例子中是把 finish 前一行的 "yes" 改成 "YES"有一个方法就是利用sed+awk一起来完成. zjk@zjk:~$ cat a.txt line is yes line is yes line is yes line is yes finish line this line is no this line is no #//用awk找到匹配行号算出要修改的行 zjk@zjk:~$ awk '/finish/{print…