プログラミング言語AWK 演習問題3-4

項目と量のペアからなるリストを読みこんで各項目の合計を整列して処理させる。家計簿集計するような感じ?

最後は sort でいいとして。

END{
       printf("",) | sort
}

項目を保存する配列 item と、量を保存する配列 num を用意すればいいのかと思って配列のところを読み直してたら、連想配列の説明があった。ナイスだ、と思ってこんな感じにしてみた。

/.+/{
    pay[$1] += $2
}
END{   for ( item in pay)
        printf("%-10s %g\n", item, pay[item]) | "sort"
}

パイプにつなげる時にクオートを忘れて、未定義変数に流しこもうとしてることに気づかず 10分ほど悩んでしまった。
解答にはパターンがなかったけど、入力に空行があるとおかしくなるからそのままにする。