Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483303
  • 博文数量: 401
  • 博客积分: 244
  • 博客等级: 入伍新兵
  • 技术积分: 2215
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-04 10:02
文章分类

全部博文(401)

文章存档

2013年(37)

2012年(364)

分类:

2012-09-17 11:19:01

文件内容如下:
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. }

如果每行的字段数不一样,还需将使用一个变量来控制行的最多的字段数。这里这里就不再叙述了。。。
阅读(174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~