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

发布时间:2020-01-31编辑:脚本学堂
awk计算相同标签行的各字段的和的代码,有需要的朋友不妨看看。

linuxjishu/13830.html target=_blank class=infotextkey>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 ""
     }
}
 

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