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는 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

관련 정보