"sort -h"가 제대로 작동하지 않습니다

"sort -h"가 제대로 작동하지 않습니다

이 파일을 정렬하려고 합니다.

1000000911M
1G
2G
1.5G
100M

그러나 이것을 사용하면 다음과 같은 sort -h file결과를 얻을 수 있습니다.

100M
1000000911M
1G
1.5G
2G

정렬에 문제가 없나요? 그렇다면 M,G를 명시적으로 확장하지 않고 어떻게 이를 방지할 수 있습니까?

답변1

이는 매뉴얼 페이지에 문서화되어 있습니다 sort.

-h, --human-numeric-sort, --sort=human-numeric
         Sort by numerical value, but take into account the SI suffix, if present.
         Sort first by numeric sign (negative, zero, or positive); then by SI
         suffix (either empty, or `k' or `K', or one of `MGTPEZY', in that order);
         and finally by numeric value.  The SI suffix must immediately follow the
         number.  For example, '12345K' sorts before '1M', because M is "larger"
         than K.  This sort option is useful for sorting the output of a single
         invocation of 'df' command with -h or -H options (human-readable).

관련 부분은 네 번째 문장입니다.

For example, '12345K' sorts before '1M', because M is "larger" than K.

이것은 당신의 1000000911M선과 1G그 뒤에 있는 선 2G사이에서 관찰되는 것 입니다.

일반적으로 이러한 접미사가 포함된 출력을 생성하는 소프트웨어는 많은 유효 숫자를 출력하는 대신 접미사를 전환합니다.

관련 정보