Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1092798
  • 博文数量: 186
  • 博客积分: 4939
  • 博客等级: 上校
  • 技术积分: 2075
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-08 17:15
文章分类

全部博文(186)

文章存档

2018年(1)

2017年(3)

2016年(11)

2015年(42)

2014年(21)

2013年(9)

2012年(18)

2011年(46)

2010年(35)

分类: 系统运维

2010-11-03 11:08:36

有两列数据,格式如下:
  1. a 1
  2. b 3
  3. c 8
  4. d 5
  5. e 5
  6. c 4
  7. e 2
  8. a 3
其中a、c、e重复出现,我想对第一列重复出现的量取平均值,结果应如下:
  1. a 2
  2. b 3
  3. c 6
  4. d 5
  5. e 3.5

awk '{a[$1]+=$2;b[$1]++}END{for (i in a)print i,a[i]/b[i]}'

======================

还有一个nestat -anln|awk '{a[$NF]++}END{for(i in a)print i,a[i]}'

======================

以前去网易的面试居然考我这个简单的问题^_^

补充一个高级点的月经问题,

2014050501|A1|B1|C1|0|12
2014050502|A1|B1|C1|1|12
2014050501|A1|B1|C1|3|35
2014050501|A1|B1|C1|0|45
2014050501|A2|B2|C2|0|25
2014050502|A2|B2|C2|1|34
2014050503|A2|B2|C2|1|57
.......

实现输出:
以小时为单位,统计出第2、3、4列相同,并且第5列=0的个数, 与第5列=1的个数。
awk -F\| '{t=$1","$2","$3","$4;if($5==0)a[t]++;if($5==1)b[t]++;c[t]}END{for(i in c)printf "%s,%d,%d\n",i,a[i],b[i] | "sort"}'

高级月经问题,模拟了多维数组,不过换汤不换药:)

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