Na linha de comando, o que é um valor numérico “geral” e “string” ao classificar?

1

De acordo com "man class", existem duas maneiras de ordenar numericamente:

-g, --general-numeric-sort
          compare according to general numerical value

e

-n, --numeric-sort
          compare according to string numerical value

Qual é a diferença entre esses "valores"?

O exemplo abaixo foi insuficiente para demonstrar isso para mim

$ cat numbers.txt
 1
 1.0
01
010
10

$ sort -n numbers.txt
01
 1
 1.0
010
10

$ sort -g numbers.txt
01
 1
 1.0
010
10
    
por jalanb 30.09.2013 / 12:30

1 resposta

2

Isso é respondido no Stack Overflow:

Qual é a diferença entre - geral as opções -numeric-sort e --numeric-sort no gnu sort

Da resposta:

General numeric sort compares the numbers as floats, this allows scientific notation eg 1.234E10 but is slower and subject to rounding error (1.2345678 could come after 1.2345679), numeric sort is just a regular alphabetic sort that knows 10 comes after 1.

Do manual de classificação do GNU :

Use [general numeric sort] only if there is no alternative; it is much slower than --numeric-sort (-n) and it can lose information when converting to floating point.

    
por 23.05.2017 / 14:41