りんご,3
みかん,2
りんご,5
りんご,1
なし,3

みたいなデータを

りんご,9
みかん,2
なし,3

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

A 回答 (1件)

私なら perl を使います.



#!/usr/bin/perl

while(<STDIN>){
@data=split /,/;
$hash{"$data[0]"} += $data[1];
}
while (($name, $value) = each(%hash)) {
print "$name = $value\n";
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/10/30 12:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング