文本:
a 11 23 34 22 34 56
b 23 46 32 64 67 34
c 64 67 34 11 23 34
a 12 33 35 22 39 36
b 21 41 12 61 62 24
c 25 17 14 21 22 14
按第一个元素为特征进行相同特征的行的元素求和:
a 23 56 69 44 73 92
b 44 87 44 125 129 58
c 89 84 48 32 45 48
- awk '{for(i=2;i<=NF;i++)a[$1,i]+=$i;b[$1]}END{for(j in b){printf("%-5s",j);for(k=2;k<NF;k++)printf("%-5s",a[j,k]);print a[j,k]}}' file
[解析]
把每个元素用一个二维数组特征累加,最后取出下标进行打印。
阅读(4617) | 评论(0) | 转发(1) |