
Ryuk
(usa Nenhuma)
Enviado em 11/03/2020 - 18:10h
linersantos escreveu:
Bom dia.
Tenho um arquivo de dados (dados.dat) e apliquei o comando sort para ordenar a 5a coluna em ordem decrescente da seguinte forma:
$ sort -k5gr dados.dat > dados_ordenados.dat
Porém os dados nao ficaram totalmente ordenados. A coluna que eu quis ordenar tem valores decimais e o comando sort só ordenou levando em conta os valores inteiros. Por exemplo, era pra ficar assim:
213.627
213.111
Mas ficou assim
213.111
213.627
Alguem sabe como refinar a precisao do comando sort?
O comando "sort" está interpretando todo o número "213.627" como um só (uma única coluna por linha), já que não há separadores de campo entre os números (cada caracteres).
Uma saída é separar cada caractere por espaço e depois aplicar o sort:
sed 's/\(.\)/\1 /g' dados.dat | sort -k 6 -r | sed 's/ //g' > datos_ordenados.dat
Obs. Como o ponto também conta como uma coluna, então se quer ordenar o quinto digito, coloque
-k 6.