이것POSIX 설명-b
이 명령의 플래그는 sort
다음과 같습니다.
제한된 정렬 키의 시작과 끝을 결정할 때 선행 문자는 무시됩니다.
키의 시작 위치의 목적은 이해할 수 있지만 끝 위치는 어떻습니까? 누구든지 예를 들어 줄 수 있습니까?
예를 들어, 로캘이 POSIX로 설정되면 다음을 포함하는 파일이
x z
x a
sort -k 2
및 아래에서는 다르게 정렬되지만 , 및가 영향을 미치는 sort -k 2b
경우는 생각할 수 없습니다 .sort -k 2,3b
sort -k 2,3
답변1
비교에 반대를 추가하면 효과가 있습니다. -r
다음에만 적용되므로 우선순위가 변경됩니다.최후의 수단 비교.
반전 없음:
$ sort -k 1,2 sample
A 34
A 33
$ sort -k 1,2b sample
A 34
A 33
취소:
$ sort -rk 1,2 sample
A 33
A 34
$ sort -rk 1,2b sample
A 34
A 33
답변2
누군가가 이것에 대해 궁금해하고 우연히 이 문제를 발견하게 된다면, --debug
GNU 정렬에서 언급된 Sukminder 플래그가 이 문제에 대한 답을 찾는 데 도움이 되었습니다. 예를 들어, 형식이 잘못된 이 파일을 정렬한다고 가정해 보겠습니다.
x FRA-Paris Pierre
x ESP-Barcelona Jordi
x FRA-Nice Charles
x FRA-Toulouse Nicole
x ESP-Seville Javier
x ESP-Madrid Carlos
다음을 입력하세요:
x ESP-Madrid Carlos
x ESP-Seville Javier
x ESP-Barcelona Jordi
x FRA-Nice Charles
x FRA-Toulouse Nicole
x FRA-Paris Pierre
즉, 두 번째 필드에서는 국가에만 초점을 맞추고 세 번째 필드에서는 사람의 이름에 초점을 맞추는 것입니다. 두 번째 필드의 처음 세 문자를 고려하고 첫 번째와 세 번째 문자를 결정할 때 선행 공백을 무시하는 것이 중요합니다.
명령은 sort -k 2b,2.3b -k 3b
작동하지만 sort -k 2b,2.3 -k 3b
작동하지 않습니다. 이 경우 가장 자연스러운 접근 방식은 -b
와 같은 전역 옵션을 적용하는 것입니다 sort -bk 2,2.3 -k 3
.