Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2988704
  • 博文数量: 272
  • 博客积分: 5544
  • 博客等级: 大校
  • 技术积分: 5496
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 00:48
个人简介

  每个人都要有一个骨灰级的爱好,不为金钱,而纯粹是为了在这个领域享受追寻真理的快乐。

文章分类

全部博文(272)

文章存档

2015年(2)

2014年(5)

2013年(25)

2012年(58)

2011年(182)

分类: LINUX

2011-10-08 10:29:37

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

以两行为单位打印:
1
2
5
6
9
10

  1. awk -vRS= -F"\n" '{for(i=1;i<=NF;i+=4)print $i ORS $(i+1)}' file
[解析]
这样就以换行为字段分割,每隔4行打印该行和该行下一行的内容。


  1. awk 'NR%4==1{getline i;print $0 RS i}' file
[解析]
其实这个原理也是一样的,NR%4==1,就相当是1,5,9...利用getline函数的特性把下一样读入给变量i,打印出来。


  1. awk 'NR%4==1||NR%4==2' file
[解析]
应该说这是最简单的awk方法,以4为模取1,2行。


  1. sed -n '1~4{N;p}' file
[解析]
这是sed的一个表达式,比如是1~2的话,就是从第1行开始,间隔1行,1~4的话就是1行开始间隔3行,同样用N读取下一行,然后打印出来。




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