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

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

文章分类

全部博文(272)

文章存档

2015年(2)

2014年(5)

2013年(25)

2012年(58)

2011年(182)

分类: LINUX

2011-08-16 13:37:24

文本:
aaa        conn
bbb        plus
ccc        main
bbb        plus
ccc        plus
aaa        plus
ddd        main
ddd        main
bbb        plus
 
统计以第一个字段为特征,第二个字段里的关键字出现的次数:
aaa conn:1 main:0 plus:1
bbb conn:0 main:0 plus:3
ccc conn:0 main:1 plus:1
ddd conn:0 main:2 plus:0




  1. awk '{a[$1]=$1;b[$2]=$2;c[$1,$2]++}END{for(j=1;j<=asort(a);j++){printf a[j];for(i=1;i<=asort(b);i++)printf FS b[i]":"c[a[j],b[i]]+0;printf RS}}' file
[解析]

  以$1为下标把$1的内容存入数组a里,把$2也存入数组b中,再把$1和$2为下标进行自加,统计数量。最后把a排序,那么a[j]的值就是排序后的$1的去重的内容,接下来再把b进行排序,那么d[i]的值就是对应的排序后的$2的字段,然后把数组a和数组d的值当作下标来提取数组c的记数,如果为空加0结果为会0,否则为空不显示,如果本身存在值也不会影响该值。

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