【发布时间】:2014-12-03 14:08:31
【问题描述】:
我想知道如何根据First($1) and Second Field ($2) 组合计算行项目数、汇总项目数并最终打印总数。
我目前能够执行以下步骤。
输入.csv
mmmm,aa123aa,11,www
pppp,bb456bb,40,www
mmmm,aa123aa,33,www
pppp,bb456bb,20,www
xxxx,cc789cc,88,www
mmmm,aa123aa,22,www
pppp,bb456bb,60,www
mmmm,aa123aa,44,www
xxxx,cc789cc,88,www
步骤#1:
awk -F, '{key=$1","$2;++a[key];b[key]=b[key]+$3} END {for(i in a) print i","a[i]","b[i]}' Input.csv >Op11_Input.csv
输出#1:
Op11_Input.csv
xxxx,cc789cc,2,176
mmmm,aa123aa,4,110
pppp,bb456bb,3,120
步骤#2:
awk 'BEGIN{FS=OFS=","}; {for(i=1;i<=NF;i++) $i=(a[i]+=$i)} END {print}' Op11_Input.csv
输出#2:
0,0,9,406
是否有任何最简单的方法,例如单行命令来避免 step2?
期望的输出:
xxxx,cc789cc,2,176
mmmm,aa123aa,4,110
pppp,bb456bb,3,120
0,0,9,406
我正在寻找您的建议!
【问题讨论】:
标签: awk