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 a
Albert 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