linux 中输出匹配字符及其后的若干行

 

001、 sed实现

复制代码
[root@PC1 test02]# ls
a.txt
[root@PC1 test02]# cat a.txt    ## 测试数据
01 02
05 06 x
09 10
44 66
33 77
13 14
17 18 k
21 22
88 99
25 26
21 22 x
25 26
22 33
44 66
77 44
[root@PC1 test02]# sed -n '/x$/,+2p' a.txt
05 06 x
09 10
44 66
21 22 x
25 26
22 33
[root@PC1 test02]# sed -n '/x$/,+2p' a.txt | sed '1~3d'     ## 输出匹配x之后的两行
09 10
44 66
25 26
22 33
复制代码

 

002、awk实现

复制代码
[root@PC1 test02]# ls
a.txt
[root@PC1 test02]# cat a.txt           ## 测试数据
01 02
05 06 x
09 10
44 66
33 77
13 14
17 18 k
21 22
88 99
25 26
21 22 x
25 26
22 33
44 66  
77 44                                       ## 输出匹配字符其后的两行
[root@PC1 test02]# awk '{if($0 ~ /x$/) {tmp = NR + 2; next}; if(NR <= tmp) {print $0}}' a.txt
09 10
44 66
25 26
22 33
复制代码

 。

 

posted @   小鲨鱼2018  阅读(124)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-07-07 R语言中regexpr和gregexpr函数
2022-07-07 R语言中实现字符串的逆转
2022-07-07 linux 中shell实现字符串的逆向输出
2022-07-07 R语言中utf8ToInt函数
2022-07-07 R语言中如何记录程序运行的时间
2022-07-07 R语言中实现将字符串首字符转换为大写,其余为小写
2022-07-07 R语言中实现字符串大小写相互转换(大写转小写,小写转大写)
点击右上角即可分享
微信分享提示