Unix Ordenar com valores exponenciais

2

Eu tentei -g , mas ainda não classifiquei true meus números exp:

sort -g output.out > sorted.out

e isso me deu essa saída:

0.100159E+00 0.998410E+01   121.0000
0.100753E+00 0.992529E+01   126.8500
0.101409E+01 0.986102E+00   130.8000
0.102260E-01 0.977901E+02   123.4000
0.102844E+00 0.972347E+01   120.9500
0.107397E-02 0.931122E+03   124.0500

parece que não está escolhendo verdadeiramente ...

    
por John 19.12.2015 / 12:48

1 resposta

1

O LC_NUMERIC locale determina o caractere de ponto decimal.

LC_ALL=C sort -g output.out > sorted.out

Exemplo

$ echo "$LC_ALL"
de_DE

$ sort -g foo   
0.100159E+00 0.998410E+01   121.0000
0.100753E+00 0.992529E+01   126.8500
0.101409E+01 0.986102E+00   130.8000
0.102260E-01 0.977901E+02   123.4000
0.102844E+00 0.972347E+01   120.9500
0.107397E-02 0.931122E+03   124.0500

$ LC_ALL=C sort -g foo    
0.107397E-02 0.931122E+03   124.0500
0.102260E-01 0.977901E+02   123.4000
0.100159E+00 0.998410E+01   121.0000
0.100753E+00 0.992529E+01   126.8500
0.102844E+00 0.972347E+01   120.9500
0.101409E+01 0.986102E+00   130.8000
    
por A.B. 19.12.2015 / 13:26