linux系统删除特定的行(sed命令)

Posted 小虾米2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统删除特定的行(sed命令)相关的知识,希望对你有一定的参考价值。

1、使用vim创建测试数据 a.txt

[root@linuxprobe test]# cat a.txt
1 w e t
2 s f h
3 z c g
4 e a g
5 a f w
6 k h d
7 w f r

 

2、删除指定的行

[root@linuxprobe test]# sed 3d a.txt ##删除第三行
1 w e t
2 s f h
4 e a g
5 a f w
6 k h d
7 w f r
[root@linuxprobe test]# sed 1,3d a.txt ## 删除1到3行
4 e a g
5 a f w
6 k h d
7 w f r
[root@linuxprobe test]# sed 1d;3d a.txt ## 删除第一行和第三行
2 s f h
4 e a g
5 a f w
6 k h d
7 w f r
[root@linuxprobe test]# sed /s/d a.txt ##删除匹配s的行
1 w e t
3 z c g
4 e a g
5 a f w
6 k h d
7 w f r
[root@linuxprobe test]# sed /w/d a.txt ##删除匹配w的行
2 s f h
3 z c g
4 e a g
6 k h d
[root@linuxprobe test]# sed /^5/d a.txt ## 删除以5开头的行
1 w e t
2 s f h
3 z c g
4 e a g
6 k h d
7 w f r
[root@linuxprobe test]# sed /^[35]/d a.txt ## 删除以3或者5开头的行
1 w e t
2 s f h
4 e a g
6 k h d
7 w f r
[root@linuxprobe test]# sed /h$/d a.txt ## 删除以h结尾的行
1 w e t
3 z c g
4 e a g
5 a f w
6 k h d
7 w f r
[root@linuxprobe test]# sed /[hw]$/d a.txt ## 删除以h或者w结尾的行
1 w e t
3 z c g
4 e a g
6 k h d
7 w f r
[root@linuxprobe test]# cat a.txt  ##使用vim编辑器重新编辑测试数据
1 w e t
2 s f 4
3 z c g
4 e a g
w a f w
6 k h d
t w f 2
[root@linuxprobe test]# sed /^[0-9]/d a.txt  ## 删除所有以数字开头的行
w a f w
t w f 2
[root@linuxprobe test]# sed /^[a-zA-Z]/d a.txt ## 删除所有以字母开头的行
1 w e t
2 s f 4
3 z c g
4 e a g
6 k h d
[root@linuxprobe test]# sed /[0-9]$/d a.txt ##删除所有以数字结尾的行
1 w e t
3 z c g
4 e a g
w a f w
6 k h d
[root@linuxprobe test]# sed /[a-zA-Z]$/d a.txt ##删除所有以字母结尾的行
2 s f 4
t w f 2
[root@linuxprobe test]# cat a.txt ## 使用vim 编辑器重新编辑测试数据
6 w e g
t s f g
2 z c g
2 e a t
y a f w
6 k h w
t w f 2
[root@linuxprobe test]# sed /^2.*g$/d a.txt  ## 删除以2开头,同时以g结尾的行
6 w e g
t s f g
2 e a t
y a f w
6 k h w
t w f 2

   [root@linuxprobe test]# cat a.txt ## 测试数据
   6 w e g
   t s f g
   2 z c g
   2 e a t
   y a f w
   6 k h w
   t w f 2

[root@linuxprobe test]# sed /e/,+1d a.txt ## 删除包含e及其后1行
2 z c g
6 k h w
t w f 2
[root@linuxprobe test]# sed /z/,+2d a.txt ## 删除包含z及其后2行
6 w e g
t s f g
6 k h w
t w f 2

 









以上是关于linux系统删除特定的行(sed命令)的主要内容,如果未能解决你的问题,请参考以下文章

linux系统中sed命令替换指定的行

linux系统中sed命令输出指定的行

Linux练习题-文本处理工具sed(施工中)

如何在Unix下使用sed命令

Linux命令之sed-删除匹配行

Linux系统之sed常用方法