linux系统中sed删除指定的行
1、测试数据
[root@centos79 test]# ls a.txt [root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s
2、删除第二行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '2d' a.txt 3 4 5 s g 8 k s g 2 5 d s c w a r t e 4 s
2、删除第2行到第5行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '2,5d' a.txt 3 4 5 s c w a r t e 4 s
3、删除第2行和第5行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '2d; 5d' a.txt 3 4 5 s g 8 k s g s c w a r t e 4 s
4、删除2到5行和第7行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '2,5d; 7d' a.txt 3 4 5 s c w e 4 s
5、删除最后一行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '$d' a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t
6、删除最后两行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# a=$(sed -n "$=" a.txt ) [root@centos79 test]# echo $a 8 [root@centos79 test]# let b=a-2+1 [root@centos79 test]# sed $(($b)),$(($a))d a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w
7、删除奇数行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '1~2d' a.txt d g 3 k s g s c w e 4 s
8、删除偶数行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '2~2d' a.txt 3 4 5 s g 8 2 5 d a r t
9、删除包含3的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '/3/d' a.txt s g 8 k s g 2 5 d s c w a r t e 4 s
10、删除包含3的行或者包含s的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '/3\|s/d' a.txt 2 5 d a r t
11、删除同时含有3和4的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '/3.*4\|4.*3/d' a.txt d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s
12、删除以s开头的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '/^s/d' a.txt 3 4 5 d g 3 k s g 2 5 d a r t e 4 s
13、删除以s开头,同时以8结尾的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '/^s.*8$/d' a.txt 3 4 5 d g 3 k s g 2 5 d s c w a r t e 4 s
14、删除以g结尾的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '/g$/d' a.txt 3 4 5 d g 3 s g 8 2 5 d s c w a r t e 4 s
15、删除2到4行以外的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '2,4!d' a.txt d g 3 s g 8 k s g
16、删除包含数字的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '/[0-9]/d' a.txt k s g s c w a r t
17、删除包含字母的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s [root@centos79 test]# sed '/[a-z]/d' a.txt 3 4 5
18、删除包含大写字母的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t s c E a R t e 4 s [root@centos79 test]# sed '/[A-Z]/d' a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t e 4 s
19、删除同时包含大写字母和小写字母的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t s c E a R t e 4 s [root@centos79 test]# sed '/[a-zA-Z]/d' a.txt 3 4 5
20、同时删除以a或者d开头的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t s c E a R t e 4 s [root@centos79 test]# sed '/^[ad]/d' a.txt 3 4 5 s g 8 k s g 2 5 d s c w s c E e 4 s
21、删除不是以a或者d开头的行
[root@centos79 test]# cat a.txt 3 4 5 d g 3 s g 8 k s g 2 5 d s c w a r t s c E a R t e 4 s [root@centos79 test]# sed '/^[ad]/!d' a.txt d g 3 a r t a R t