sort 명령을 통해 프로젝트에 사용된 기존 스크립트를 이해하려고 합니다.
sort -t= -nr -k3 nos
nos
997 998 999 1000과 같은 공백과 숫자가 포함된 파일은 어디에 있습니까 ?
출력은 다음과 같습니다
999
998
997
1000
마지막에 1000이 왜 나오는지 이해가 안가네요. 항목당 키가 하나만 있을 때 매개변수 때문인 것으로 의심되지만 -k3
문서에서 지정된 키 위치가 없을 때 어떻게 작동하는지 설명하는 내용을 찾을 수 없습니다.
이는 파일에 4자리 숫자가 포함될 때까지 숫자를 숫자 내림차순으로 정렬하는 예상 결과를 제공합니다.
답변1
존재하지 않는 정렬 필드를 지정하면 sort
존재하는 모든 비교에 대해 정렬 키가 비어 있게 됩니다. 즉, 키 비교는 항상 동일합니다. 그러면 다음 중 일부가 실행됩니다.기준sort
이는 다음을 의미합니다.전반적으로정렬 키로 사용해야 하며 옵션 -d
, -f
, -i
또는 효과 -n
가 -k
없습니다.
이는 명령이 다음과 동일한 효과를 갖는다는 것을 의미합니다.
sort -r nos
데이터의 역사전식 정렬을 수행합니다( -t=
여기에서는 작동하지 않음). 순서가 먼저 나오므로 역순으로 먼저 옵니다 997
.1000
9
1
POSIX 표준의 관련 비트:
-k keydef
[...]
이 옵션을 지정하지 않으면 같음을 비교하는 행은 , , 또는
-u
옵션이 없는 것처럼 정렬되어야 하며 (지정된 경우 여전히 유효함) 행의 모든 바이트를 비교해야 합니다. 여전히 같음을 비교하는 행의 쓰기 순서가 지정되지 않았습니다.-d
-f
-i
-n
-k
-r