데이터는 다음과 같습니다.
D 2
B 2
A 2
이 명령을 실행할 때 :
sort -k2,2 file
출력 :
A 2
B 2
D 2
내 질문은 두 번째 열만 지정할 때 -k2,2첫 번째 열을 기준으로 정렬하는 이유는 무엇입니까? 두 번째 열의 모든 값이 동일하므로 그대로 두어야합니다.
답변
이것이 최후의 수단 비교 입니다. 두 줄을 비교할 때 모든 키가 동일한 경우 마지막 수단으로 전체 줄의 기본 문자열 비교가 수행됩니다 ( -r여전히 적용되지만 다른 옵션은 적용되지 않음). 이 동작은 POSIX에 의해 지정됩니다 .
-u 옵션이 지정된 경우를 제외하고, 동일하게 비교하는 행은 -d, -f, -i, -n 또는 -k 옵션이없는 것처럼 정렬됩니다 (그러나 -r이 여전히 유효한 경우 그것은 지정되었다) 라인의 모든 바이트와 비교에 중요한. 여전히 동일하게 비교되는 행이 작성되는 순서는 지정되지 않습니다.
GNU를 sort사용하면 -s( 안정적인 ) 옵션 을 사용하여 마지막 복원 비교를 비활성화 할 수 있습니다 .