Pregunta

Estoy tratando de ordenar una tabla basándose en el primer valor de menor a mayor con el comando GNU-coreutils tipo.

Mi apariencia de mesa algo como esto:

archivo.txt

100,0.8,0.323, ... some more data
2,0.323,0,323, ...
4, ...
53, ...
.
.
121, ...

He intentado hacer lo siguiente:

sort -n -k 1 file.txt

pero me da cosas como ...

10,0,10,10
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9,9,18
21,1,10,11
32,2,10,12
43,3,10,13
54,4,10,14

Quiero que el orden numérico lógico.

Ted.

¿Fue útil?

Solución

La invocación correcta de sort podría parecerse

$ sort -n -t , -k 1,1 file.txt

Explicación:

  • -n orden aritmético
  • coma -t , es separador de campo
  • -k 1,1 tipo en el primer campo
  • archivo de entrada file.txt

Invocando el programa anterior dado da

  

10,0,10,10
  21,1,10,11
  32,2,10,12
  43,3,10,13
  54,4,10,14
  100,9,1,10
  101,9,2,11
  102,9,3,12
  103,9,4,13
  104,9,5,14
  105,9,6,15
  106,9,7,16
  107,9,8,17
  108,9,9,18

Al ordenar por campos es muy útil opción de uso a --debug, sólo para asegurarse de que tipo funciona como se esperaba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top