awk를 사용하여 열을 행으로 변경

awk를 사용하여 열을 행으로 변경

나는 다음 목록을 가지고 있습니다 :

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두 번째 필드를 배열에 저장한 다음 마지막으로 결과를 정렬합니다.

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

관련 정보