作者: Bruce.
日時: 2008/2/29(11:04)
Bruce. です。

davi writes:

> で、出力を、本当は
> 
> ----- out_list.txt -----
> ビアドのローマの女たち,A.バージェス,,サンリオSF,1980
> 永遠へのパスポート,J.G.バラード,永井淳 訳,創元推理文庫,1970
> 火星の黄金仮面,O.A.クライン,,創元推理文庫,1978
> 虚空の眼,フィリップ・K・ディック,大瀧啓裕 訳,サンリオSF,
> 夢みる宝石,シオドア・スタージョン,,ハヤカワ文庫,1979
> 創世記機械,,山高昭 訳,創元推理文庫,1981
> --------------------------
> 

なにもawkでやらんでもという気がしないでもありませんが、こんなんでいかーすか?
#delete array は処理系を選びますが POSIX compliant なら大丈夫なはず
 
BEGIN {
    FS = ","
    getline
    entry["題名"] = prev = $1
    #entry[$2] = $3
}

#NR == 1 {
#    entry["題名"] = prev = $1
#    entry[$2] = $3
#    next
#}

$1 != prev {
    put_record()
    delete entry
    entry["題名"] = prev = $1
    #entry[$2] = $3
    #next
}
{
    entry[$2] = $3
}
END {
    put_record()
}

function put_record() {
    printf "%s,%s,%s,%s,%s\n",
     entry["題名"],
     entry["著者"],
     entry["訳者"],
     entry["出版社"],
     entry["出版年"];
}