Ejemplo file.txt
:
100 foo
2 bar
300 tuu
Cuando se usa sort -k 1,1 file.txt
, el orden de las líneas no cambiará, aunque esperamos:
2 bar
100 foo
300 tuu
¿Cómo ordenar un campo que consta de números según el valor numérico absoluto?
-g, --general-numeric-sort
podría ser más recomendable usar . Esto permite además la notación científica, por ejemplo, 1.234E10, etc.Si está ordenando cadenas que son texto y números mixtos, por ejemplo, nombres de archivo de registros continuos, la clasificación con
sort -n
no funciona como se esperaba:En ese caso, la opción
-V
funciona:desde la página del manual:
fuente
ls
a través desed
sustituciones para eliminar las letras y dejar sólo números, al parecer, la salida de color estaba afectando cosas así. Así que correrls --color=never
también marcó la diferencia.-V
es exactamente lo que estaba buscando. Debería tener el hábito de mirar primero las páginas del manual.Bueno, la mayoría de las otras respuestas aquí se refieren a
Sin embargo, no estoy seguro de que esto funcione con números negativos. Estos son los resultados que obtengo con sort versión 6.10 en Fedora 9.
Fichero de entrada:
Salida:
Que obviamente no está ordenado por valor numérico.
Entonces, supongo que una respuesta más precisa sería usar
sort -n
pero solo si todos los valores son positivos.PD: usando
sort -g
devuelve los mismos resultados para este ejemploEditar:
Parece que la configuración regional afecta la forma en que el signo menos afecta el pedido ( consulte aquí ). Para obtener los resultados adecuados, acabo de hacer:
fuente
Tienes que usar la opción de ordenación numérica:
fuente
Utilice
sort -n
osort --numeric-sort
.fuente
Debes hacer el siguiente comando:
sort -n -k1 filename
Deberias hacer eso :)
fuente
Utilice sort -nr para clasificar en orden descendente. Referir
Ordenar
Consulte la página de manual anterior para obtener más referencias
fuente
fuente