Permíteme aclarar:
Supongamos que tengo algunas palabras clave con frecuencia de uso:
12 Hi
7 Hash
7 C++
9 Superuser
17 Stackoverflow
9 LaTeX
42 Life
9 Ubuntu
Lo que quiero es ordenar estos datos en función de la frecuencia en orden descendente y si hay algunos valores iguales, debería usar la segunda columna en orden ascendente.
sort -n -r foo.txt
¿La primera parte pero luego la segunda columna también son reversed
:
42 Life
17 Stackoverflow
12 Hi
9 Ubuntu
9 Superuser
9 LaTeX
7 Hash
7 C++
¿Cómo puedo lograr los siguientes resultados?
42 Life
17 Stackoverflow
12 Hi
9 LaTeX
9 Superuser
9 Ubuntu
7 C++
7 Hash
Creo que tengo que usar -k
argumentos, ¡pero no puedo entender cómo!
Quiero saber cómo se puede hacer esto usando únicamente el sort
comando de bash
. Sin embargo, si no es posible lograr esto solo mediante sort
, otros comandos deberían ser compatibles con el shell Bourne.
text-processing
sort
Pouya
fuente
fuente
-g
opción GNU-sort (numérico general) en lugar de-n
las comparaciones numéricas es más seguro: funciona correctamente tanto para coma flotante como para enteros.Respuestas:
Especifique las claves de clasificación por separado con los criterios:
Esto especifica que la primera clave se ordena numéricamente en orden inverso, mientras que la segunda se ordena según el orden de clasificación predeterminado .
Citando del orden POSIX :
Esto produciría:
fuente