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

1、测试数据如下:

复制代码
复制代码
[root@centos79 test]# seq 10 > a.txt
[root@centos79 test]# ls
a.txt
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
复制代码
复制代码

 

2、提取第2行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
[root@centos79 test]# sed -n '2p' a.txt
2
复制代码
复制代码

 

3、提取第2行到第7行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
[root@centos79 test]# sed -n '2,7p' a.txt
2
3
4
5
6
7
复制代码
复制代码

 

4、只提取第2行和第7行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
[root@centos79 test]# sed -n '2p;7p' a.txt
2
7
复制代码
复制代码

 

5、提取奇数行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
[root@centos79 test]# sed -n '1~2p' a.txt
1
3
5
7
9
复制代码
复制代码

 

6、提取偶数行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
[root@centos79 test]# sed -n '2~2p' a.txt
2
4
6
8
10
复制代码
复制代码

 

7、提取3倍数行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
[root@centos79 test]# sed -n '3~3p' a.txt
3
6
9
复制代码
复制代码

 

利用正则表达式提取特定行。

8、测试数据如下:

复制代码
复制代码
[root@centos79 test]# seq 15 > a.txt
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
复制代码
复制代码

 

9、提取匹配2的行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos79 test]# sed -n '/2/p' a.txt
2
12
复制代码
复制代码

 

10、提取没有匹配2的行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos79 test]# sed -n '/2/!p' a.txt
1
3
4
5
6
7
8
9
10
11
13
14
15
复制代码
复制代码

 

11、提取同时匹配2和5的行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos79 test]# sed -n '/2\|5/p' a.txt
2
5
12
15
复制代码
复制代码

 

12、提取没有匹配2或者5的行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos79 test]# sed -n '/2\|5/!p' a.txt
1
3
4
6
7
8
9
10
11
13
14
复制代码
复制代码

 

13、提取以2开头的行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos79 test]# sed -n '/^2/p' a.txt
2
复制代码
复制代码

 

13、提取以2结尾的行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos79 test]# sed -n '/2$/p' a.txt
2
12
复制代码
复制代码

 

14、同时提取以2开头或者以5开头的行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos79 test]# sed -n '/^2\|^5/p' a.txt
2
5
复制代码
复制代码

 

15、同时提取以2和5结尾的行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos79 test]# sed -n '/2$\|5$/p' a.txt
2
5
12
15
复制代码
复制代码

 

16、提取以1开头以5结尾的行

复制代码
复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
13340
213435
1332425
13
1434
13245
[root@centos79 test]# sed -n '/^1.*5$/p' a.txt
1332425
13245
复制代码
复制代码

 

17、提取3的倍数行以外的行

复制代码
[root@centos79 test]# cat a.txt
1
2
3
4
5
6
7
8
9
10
[root@centos79 test]# sed -n '3~3!p' a.txt
1
2
4
5
7
8
10
复制代码

 

 

 

原文链接:https://www.cnblogs.com/liujiaxin2018/p/14984096.html

 

posted @   超级宝宝11  阅读(2606)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示