行列
1 2
1 3
2 100
(1)2次元配列に代入。
方法1:まずは手で直接書いて配列に代入。
$ awk 'BEGIN{a["1a2"]=1;a["1a3"]=1;a["2a100"]=1;for(i in a){split(i,k,"a");pr int k[1],k[2],a[i]}}' 1 2 1 1 3 1 2 100 1
方法2:ファイルから
$ awk '{a[$1"a"$2]=1;}END{for(i in a){split(i,k,"a");pr int k[1],k[2],a[i]}}' inputfile 1 2 1 1 3 1 2 100 1
(2)1列目の共通するものの2列目の
和を求める。
$ awk 'BEGIN{a["1a2"]=1;a["1a3"]=1;a["2a100"]=1;for(i in a){split(i,k,"a");su m[k[1]]=sum[k[1]]+k[2]};for(i in sum){print i,sum[i];}}' 1 5 2 100
ファイルから読み取る場合
$ awk '{a[$1"a"$2]=1;}END{for(i in a){split(i,k,"a");sum[k[1]]=sum[k[1]]+k[2] };for(i in sum){print i,sum[i];}}' inputfile 1 5 2 100