Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65941
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 18
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-17 22:52
文章分类
文章存档

2017年(17)

我的朋友

分类: LINUX

2017-07-07 14:53:03

文本:
1
2
3
4
5
6
7
8
9

获取3和7之间的内容:
4
5
6


  1. awk '/3/,/7/{if(i>1)print x;x=$0;i++}' file
  2. 4
  3. 5
  4. 6
[解析]
    获取2个关键字之间的内容大家都会想到正则匹配的 /i/,/j/ 这样的语句,但是这会把包含3和7的行都打印出来,我们的问题是截取它们之间的内容,那肯定还需要进行处理,这个是斩头去尾的思路。


  1. seq 9 |sed -n '/3/,/7/{/3/n;/7/b;p}'
  2. 4
  3. 5
  4. 6
[解析]
    同样,该正则表达式一样可以用于sed,那么我们一样面临刚才提到的问题,这个处理手法非常巧妙。谢谢SS老师。

阅读(3037) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~