次の内容を含むテキストファイルがあります。
タイトル1 A1
タイトル3 A3
タイトル4 A4
タイトル5 A5
タイトル1 B1
タイトル2 B2
タイトル5 B5
タイトル1 C1
タイトル2 C2
タイトル4 C4
タイトル5 C5
タイトル 1 D1
タイトル 2 D2
タイトル 3 D3
私は次の出力が欲しい:
title1 title2 title3 title4 title5
A1 A3 A4 A5
B1 B2 B5
C1 C2 C4 C5
D1 D2 D3
AWKを使ってコードを書く方法を教えてください。
よろしくお願いします!
ベストアンサー1
空白(または「:」)だけで区切られるようにデータを変更できる場合は、次のawkプログラムがこれを実行できます。レイアウトを完璧にするために調整する必要があるかもしれません。
BEGIN { i = 1; }
$1 != "" { C[$1] = $1; X[$1,i] = $2 ; next; }
{ i++; }
END {
asort(C);
for ( k in C ) printf " %8s\t", C[k];
printf "\n";
for ( j = 1; j <= i; j++ ) {
for ( k in C ) printf "%8s\t",X[C[k],j];
printf "\n";
}
}