昨日のエントリでawkとsedを使用しない縛りプレイをしたわけですが、awkを使ってみたら一撃でできちゃいました。

1
2
3
awk 'NR!=1{k1[$1]=0;k2[$2]=0;ks[$1,$2]=ks[$1,$2]+$3}END{for(h in k2) printf "\t" h;print"";for(o1 in k1){printf o1;for(o2 in k2){v=ks[o1,o2];printf "\t" (v==""?0:v)}print ""}}' sample.txt

```出力結果
1
    OREO    Ice     Juice

A 0 310 0 B 0 130 120 I 630 0 0 ```やっぱり、どの言語でやるかっていうのはだいじ。※note:awkの配列って最大いくつまでOKなんだろう。