【发布时间】:2014-09-06 01:26:16
【问题描述】:
希望根据第 2 列和第 4 列、行项目数、第 3 列的总和和第一列的唯一值进行打印
输入.csv
abc,xx,5,Jan-2014
abc,yy,10,Jan-2014
def,xx,15,Jan-2014
def,yy,20,Jan-2014
abc,xx,5,Jan-2014
abc,yy,10,Jan-2014
def,xx,15,Jan-2014
def,yy,20,Jan-2014
ghi,zz,10,Jan-2014
abc,xx,5,Feb-2014
abc,yy,10,Feb-2014
def,xx,15,Feb-2014
def,yy,20,Feb-2014
abc,xx,5,Feb-2014
abc,yy,10,Feb-2014
def,xx,15,Feb-2014
def,yy,20,Feb-2014
ghi,zz,10,Feb-2014
尝试#1:
awk '
BEGIN { FS = OFS = "," }
{ keys=$2","$4;keys[$2][$4]++; sum[$2]+=$3 } !seen[$1,$2,$4]++ { count[$2]++ }
END { for(key in keys) print key, keys[key], sum[key], count[key] }
' Input.csv
尝试#2:
awk '
BEGIN { FS = OFS = "," }
{ keys=[$2][$4];keys[$2][$4]++; sum[$2]+=$3 } !seen[$1,$2,$4]++ { count[$2]++ }
END { for(key in keys) print key, keys[key], sum[key], count[key] }
' Input.csv
尝试#3:
awk '
BEGIN { FS = OFS = "," }
{ keys=[$2,$4];keys[$2][$4]++; sum[$2]+=$3 } !seen[$1,$2,$4]++ { count[$2]++ }
END { for(key in keys) print key, keys[key], sum[key], count[key] }
' Input.csv
期望的输出:
xx,Jan-2014,4,40,2
yy,Jan-2014,4,60,2
zz,Jan-2014,1,10,1
xx,Feb-2014,4,40,2
yy,Feb-2014,4,60,2
zz,Feb-2014,1,10,1
寻求您的建议!!!
【问题讨论】:
标签: awk