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
复制代码

 

posted @   小鲨鱼2018  阅读(1861)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示