当前位置: > shell编程 >

awk计算相同标签行的各字段的和的代码

时间:2014-09-15 02:21来源:linux.it.net.cn 作者:it

awk计算相同标签行的各字段的和的代码,有需要的朋友不妨看看。

有这样的一段文件内容:
a   1  2  3
a  2  3  4
b  1  2  3
b  1  1  1
要求输出:
a  3  5  7
b  2  3  4

即要求实现:
将第一个字段相同的行,各列相加,并输出。
因为这里的每行字段都是相同的,所以比较简单。
 

复制代码代码如下:
#!/bin/bash
{
    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 ""
     }
}
 

备注:
如果每行的字段数不一样,还需将使用一个变量来控制行的最多的字段数。

 
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容