나는 다음 목록을 가지고 있습니다 :
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