awk '{a[]+=}{b[]+=}{c[]+=}{d[]+=}{e[]+=}{f[]+=}{g[]+=}END{for(i in a) print i,a[i],b[i],c[i],d[i],e[i],f[i],g[i]}'
这是输入:
a1 1 1 2 2 a2 2 5 3 7 a2 2 3 3 8 a3 1 4 6 1 a3 1 7 9 4 a3 1 2 4 2
并输出:
a1 1 1 2 2 a2 4 8 6 15 a3 3 13 19 7
谢谢 :)
解决方法 我将单行内容分成几行,以便于阅读.awk '{n[];for(i=2;i<=NF;i++)a[,i]+=$i} END{for(x in n){ printf "%s ",x for(y=2;y<=NF;y++)printf "%s%s",a[x,y],(y==NF?ORS:FS) } }' file
这个awk命令应该与你的100列文件一起使用.
用你的文件测试:
kent$ cat fa1 1 1 2 2a2 2 5 3 7a2 2 3 3 8a3 1 4 6 1a3 1 7 9 4a3 1 2 4 2kent$ awk '{n[];for(i=2;i<=NF;i++)a[,i]+=$i}END{for(x in n){printf "%s ",x;for(y=2;y<=NF;y++)printf "%s%s",(y==NF?ORS:OFS)}}' fa1 1 1 2 2a2 4 8 6 15a3 3 13 19 7总结
以上是内存溢出为你收集整理的基于唯一列awk汇总行全部内容,希望文章能够帮你解决基于唯一列awk汇总行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)