• ベストアンサー

集計するシェルスクリプト

りんご,3 みかん,2 りんご,5 りんご,1 なし,3 みたいなデータを りんご,9 みかん,2 なし,3 のように集計するシェルスクリプトを書こうと思っています。 sortとuniqでレコードの名前を外部ファイルに書き出してループ処理というのは思いついたのですが、いまいち綺麗じゃないような気がします。外部ファイルを使わずに処理する方法があれば、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.1

私なら perl を使います. #!/usr/bin/perl while(<STDIN>){ @data=split /,/; $hash{"$data[0]"} += $data[1]; } while (($name, $value) = each(%hash)) { print "$name = $value\n"; }

100Gold
質問者

お礼

ご回答ありがとうございます。 awkを使いました。 BEGIN{ FN="," } { data[$1] += $2 } END { print $1,$2 } 今度からなるべくPerlにしようかなと思います。 なんとなくいつも避けてしまうので。

関連するQ&A