Pular para o conteúdo

Comando sort [RESOLVIDO]

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Comando sort [RESOLVIDO]

Enviado em 11/03/2020 - 08:57h

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?

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Comando sort [RESOLVIDO]

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.

3. Re: Comando sort [RESOLVIDO]

Enviado em 11/03/2020 - 22:16h

Olá. Na vdd o número é um só msm. Meu arquivo tem 5 colunas.
Eu consegui resolver usando o LOCALE:
LC_ALL=en_US.utf8 sort -k5gr file.dat > file_ordenado.dat
Aproveito pra deixar a dica se alguém precisar 😉

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder