文件内容如下:
a
1
2 3
a
2 3 4
b 1 2
3
b 1 1
1
结果输出
a 3 5
7
b 2 3 4
题目要求是将第一个字段相同的行,各列相加,并输出。因为这里的每行字段都是相同的,所以比较简单。代码如下
- a 1 2 3
- a 2 3 4
- b 1 2 3
- b 1 1 1
- 结果输出
- a 3 5 7
- b 2 3 4
- {
- op[$1]++;
- for(i=2;i<=NF;i++)
- sum[$1,i] += $i
- }
- END{
- for(x in op){
- printf x" "
- for(i=2;i<=NF;i++)
- printf sum[x,i]" "
- print ""
- }
- }
如果每行的字段数不一样,还需将使用一个变量来控制行的最多的字段数。这里这里就不再叙述了。。。
阅读(1317) | 评论(0) | 转发(1) |