以下を含むファイルがあります。
z,cat,7,9,bar
x,dog,9,9,bar
y,dog,3,4,foo
s,cat,3,4,bar
t,boat,21,1,foo
u,boat,19,3,bar
そして私はこの結果に到達する必要があります:
x,cat,10,13,x
x,dog,12,13,x
x,boat,40,4,x
私は似たようなことを試みていました
awk '{a[$NF]+=$1}END{for(x in a) printf "%s %s\n",x,a[x]}'
しかし、このアプローチで何が起こるかというと、行1、2、および5に英数字を含めることができるため、列を追加すると穴が壊れるということです。
これでうまくいくはずです。
awk -F, '{arr1[$2]+=$3;arr2[$2]+=$4} END {for (i in arr1) print "x",i,arr1[i],arr2[i],"x"}' OFS=, file
x,cat,10,13,x
x,boat,40,4,x
x,dog,12,13,x
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加