こんにちは。
こういうことをしたいのかな、と思い、以下のようにしました。
メインのループで配列変数にデータを取り込んで、END{} で
変数内容を書き出しています。
bash-3.2$ cat book1.awk
BEGIN{
FS=",";
}
{
titles[$1] = 1;
if ( $2 == "著者" ) { author[$1] = $3; }
if ( $2 == "訳者" ) { translator[$1] = $3; }
if ( $2 == "出版社" ) { publisher[$1] = $3; }
if ( $2 == "出版年" ) { year[$1] = $3; }
}
END{
for ( title in titles ){
printf( "%s,%s,%s,%s,%s,\n",
title,
author[title],
translator[title],
publisher[title],
year[title] );
}
}
bash-3.2$ awk -f book1.awk < book_list.txt
夢みる宝石,シオドア・スタージョン,,ハヤカワ文庫,1979,
創世記機械,,山高昭 訳,創元推理文庫,1981,
火星の黄金仮面,O.A.クライン,,創元推理文庫,1978,
永遠へのパスポート,J.G.バラード,永井淳 訳,創元推理文庫,1970,
虚空の眼,フィリップ・K・ディック,大瀧啓裕 訳,サンリオSF,,
ビアドのローマの女たち,A.バージェス,,サンリオSF,1980,
bash-3.2$