私は次のリストを持っています:
AA 1
AA 2
AA 3
B 4
B 4
C 5
C 6
C 7
C 8
awkを使って次の出力に変更したいと思います。
AA 1 2 3
B 4 4
C 5 6 7 8
AWKを使ってこれを行う方法を教えてください。
答え1
最初のフィールドで配列を作成し、rec
2番目のフィールドを配列に保存し、最後に結果を並べ替えます。
awk '{ rec[$1]=rec[$1] " " $2 }
END { for (key in rec) print key rec[key] }
' file.txt | sort
答え2
awk '{a[$1]=a[$1] FS $2} END{for(i in a) print i a[i]}' file
出力:
今週の集まり 1 2 3 雨4 4 種 5 6 7 8
源泉:https://stackoverflow.com/q/56716292/3776858
そして他の方向から見ると:
awk '{for(i=2;i<=NF;i++){print $1,$i}}' file