Gnu 정렬 -k2와 -k2,2의 차이점

Gnu 정렬 -k2와 -k2,2의 차이점
less file.txt

01 Joe x
02 Marie y
03 Albert p
04 Dave k

열 2를 기준으로 정렬하고 싶습니다. 그러나 다음 명령은 모두 동일한 출력을 제공합니다. -k2와 -k2,2를 사용하는 것의 차이점이 무엇인지 아는 것이 좋을 것입니다.

less file.txt | sort -k2그리고less file.txt | sort -k2,2

산출:

03 Albert p
04 Dave k
01 Joe x
02 Marie y

답변1

쉼표 뒤의 사양은 a stop position(기본값은 end of the line) 를 정의합니다.

man 1 sort:

-k, --key=KEYDEF키를 통해 정렬합니다. KEYDEF는 위치와 유형을 제공합니다.

KEYDEF는 F[.C][OPTS][,F[.C][OPTS]]시작 및 중지 위치에 대한 것입니다. 여기서 F는 필드 번호이고 C는 필드의 문자 위치입니다. 둘 다 원점 1이고 정지 위치는 기본적으로 선 끝으로 설정됩니다.


예를 들어 다음 입력을 고려해보세요 file.txt.

03 Albert p
04 Albert a
  • 를 사용하여 정렬하면 가 앞에 배치됩니다 -k2.Albert aAlbert p
  • 를 사용하면 -k2,2정렬 시 세 번째 키가 무시됩니다.

또는 다른 예:

03 Albert p
04 Aave k

다음을 사용하여 두 번째 키의 첫 번째 문자를 기준으로 정렬할 수 있습니다 -k2,2.2.

$ sort -k2,2.2 file.txt
03 Albert p
04 Aave k
  • -k2사용된 경우 Aa이전에 정렬됩니다.Al

관련 정보