linux 中 sed命令 指定行的范围,然后去删除匹配的数据
001、
[root@pc1 test3]# ls a.txt [root@pc1 test3]# cat a.txt ## 测试数据 a b c a b c a b c [root@pc1 test3]# sed '1,6 /a/d' a.txt ## 删除1-6行中,匹配a的行, 发现报错 sed: -e expression #1, char 5: unknown command: `/'
002、正确的做法如下:
[root@pc1 test3]# ls a.txt [root@pc1 test3]# cat a.txt ## 测试数据 a b c a b c a b c [root@pc1 test3]# sed '1,6 {/a/d}' a.txt ## 删除1-6行中匹配a的行 b c b c a b c
003、删除第5行到最后1行中所有匹配a的行
[root@pc1 test3]# ls a.txt [root@pc1 test3]# cat a.txt a b c a b c a b c [root@pc1 test3]# sed '5,$ {/a/d}' a.txt ## 删除第5行到最后1行中,所有的匹配a的行 a b c a b c b c