Chinaunix首页 | 论坛 | 博客
  • 博客访问: 916618
  • 博文数量: 75
  • 博客积分: 1216
  • 博客等级: 少尉
  • 技术积分: 1998
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-11 16:20
个人简介

优秀是一种习惯

文章分类

全部博文(75)

文章存档

2014年(1)

2013年(29)

2012年(45)

分类: Python/Ruby

2012-09-13 14:52:06

文件内容如下:
a  
  3
a  2  3  4
b  1  2  3

b  1  1  1

结果输出

a  3  5  7

b  2  3  4

题目要求是将第一个字段相同的行,各列相加,并输出。因为这里的每行字段都是相同的,所以比较简单。代码如下


  1. a 1 2 3
  2. a 2 3 4
  3. b 1 2 3
  4. b 1 1 1
  5. 结果输出
  6. a 3 5 7
  7. b 2 3 4

  8. {
  9.     op[$1]++;
  10.     for(i=2;i<=NF;i++)
  11.          sum[$1,i] += $i
  12. }
  13. END{
  14.      for(x in op){
  15.          printf x" "
  16.          for(i=2;i<=NF;i++)
  17.              printf sum[x,i]" "
  18.          print ""
  19.      }
  20. }

如果每行的字段数不一样,还需将使用一个变量来控制行的最多的字段数。这里这里就不再叙述了。。。
阅读(1320) | 评论(0) | 转发(1) |
0

上一篇:没有了

下一篇:使用awk整理日志格式

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