유닉스 정렬을 이해할 수 없습니다. 다음 파일을 고려하십시오(탭으로 구분됨).
aa ~ a1
aa B
b A
b ~ e
bb B
bb ~ B
전화를 걸 때:
cat tmp2 | sort -t $'\t' -k1,2
알겠어요
aa ~ a1
aa B
b A
bb B
bb ~ B
b ~ e
내가 이해하는 바에 따르면 -t $'\t' 구분 기호를 공백 대신 탭으로 처리하는 것을 의미하고, -k1,2는 첫 번째 열을 기준으로 정렬을 의미하며, 두 행의 첫 번째 열이 동일한 경우 두 번째 열로 이동하는 것을 의미합니다. 그런데 이 경우 마지막 "b"가 네 번째 줄에 나와야 하는 것 아닌가요?
답변1
아니요, -k1,2
첫 번째 필드의 시작 부분부터 시작하여 두 번째 필드의 끝 부분에서 끝나는 줄 부분을 정렬하는 것을 의미합니다.
첫 번째 필드를 정렬한 다음 두 번째 필드를 정렬하려면 다음을 수행합니다.
sort -k1,1 -k2,2