linux 中 sed匹配特定字符并输出其后的若干行

 

001、

复制代码
root@DESKTOP-1N42TVH:/home/test2# ls
a.txt
root@DESKTOP-1N42TVH:/home/test2# cat a.txt       ## 测试数据
01 1
02 2
AA 3
03 4
04 5
05 6
BB 7
06 8
07 9
AA 10
08 11
CC 12
09 13
77 14
33 15
AA 16
33 17
78 18
23 19
97 20
root@DESKTOP-1N42TVH:/home/test2# sed -n '/AA/p' a.txt    ## 匹配包含有AA的行
AA 3
AA 10
AA 16
复制代码

 

002、匹配包含AA的行及其后的2行、1行

复制代码
root@DESKTOP-1N42TVH:/home/test2# ls
a.txt
root@DESKTOP-1N42TVH:/home/test2# cat a.txt
01 1
02 2
AA 3
03 4
04 5
05 6
BB 7
06 8
07 9
AA 10
08 11
CC 12
09 13
77 14
33 15
AA 16
33 17
78 18
23 19
97 20
root@DESKTOP-1N42TVH:/home/test2# sed -n '/AA/,+2p' a.txt   ## 匹配包含AA的行及其后的两行
AA 3
03 4
04 5
AA 10
08 11
CC 12
AA 16
33 17
78 18
root@DESKTOP-1N42TVH:/home/test2# sed -n '/AA/,+1p' a.txt   ## 匹配包含AA的行及其后的1行
AA 3
03 4
AA 10
08 11
AA 16
33 17
复制代码

 

003、匹配包含AA的行及其后两行, 同时提取包含BB的行及其后的一行

复制代码
root@DESKTOP-1N42TVH:/home/test2# ls
a.txt
root@DESKTOP-1N42TVH:/home/test2# cat a.txt
01 1
02 2
AA 3
03 4
04 5
05 6
BB 7
06 8
07 9
AA 10
08 11
CC 12
09 13
77 14
33 15
AA 16
33 17
78 18
23 19
97 20
root@DESKTOP-1N42TVH:/home/test2# sed -n '/AA/,+2p; /BB/,+1p' a.txt ## 同时提取包含AA的行及其后2行,BB行及其后1行
AA 3
03 4
04 5
BB 7
06 8
AA 10
08 11
CC 12
AA 16
33 17
78 18
复制代码

 

004、提取匹配AA的行及其后的6行

复制代码
root@DESKTOP-1N42TVH:/home/test2# ls
a.txt
root@DESKTOP-1N42TVH:/home/test2# cat a.txt
01 1
02 2
AA 3
03 4
04 5
05 6
BB 7
06 8
07 9
AA 10
08 11
CC 12
09 13
77 14
33 15
AA 16
33 17
78 18
23 19
97 20
root@DESKTOP-1N42TVH:/home/test2# sed -n '/AA/,+6p' a.txt  ## 匹配AA及其后的6行,匹配原则是依次匹配,最后一个AA在上一次匹配中被选中,不再匹配其后的6行
AA 3
03 4
04 5
05 6
BB 7
06 8
07 9
AA 10
08 11
CC 12
09 13
77 14
33 15
AA 16
复制代码

 

005、

复制代码
root@DESKTOP-1N42TVH:/home/test2# ls
a.txt
root@DESKTOP-1N42TVH:/home/test2# cat a.txt
01 1
02 2
AA 3
03 4
AA 5
05 6
BB 7
06 8
07 9
AA 10
08 11
AA 12
09 13
77 14
33 15
AA 16
33 17
78 18
23 19
97 20
root@DESKTOP-1N42TVH:/home/test2# sed -n '/AA/,+3p' a.txt  ## 匹配AA的行及其后的3行,AA被选择后,不再匹配AA及其后的3行
AA 3
03 4
AA 5
05 6
AA 10
08 11
AA 12
09 13
AA 16
33 17
78 18
23 19
复制代码

 

posted @   小鲨鱼2018  阅读(2146)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-07-17 linux系统中如何删除^M
2021-07-17 linux系统中实现文件指定列的互换
2021-07-17 linux系统中awk命令删除指定列
2021-07-17 linux系统中如何将文件的某一列替换为其他文件的指定列
2021-07-17 linux系统中删除文件的第一列
点击右上角即可分享
微信分享提示