Chinaunix首页 | 论坛 | 博客
  • 博客访问: 214224
  • 博文数量: 87
  • 博客积分: 192
  • 博客等级: 入伍新兵
  • 技术积分: 455
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-14 07:44
文章分类

全部博文(87)

文章存档

2013年(1)

2012年(86)

分类:

2012-04-14 15:30:21

文本:
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老师。

阅读(3410) | 评论(0) | 转发(0) |
0

上一篇:awk之ARGC 和 ARGV

下一篇:awk之腾讯面试题

给主人留下些什么吧!~~