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