Especifique las claves de clasificación por separado con los criterios:
sort -k1,1nr -k2,2 inputfile
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 :
-k keydef
El argumento keydef es una definición de campo de clave de clasificación restringida. El formato de esta definición es:
inicio_campo [ tipo ] [ , fin_campo [ tipo ]]
donde field_start y field_end definen un campo clave restringido a una parte de la línea (consulte la sección DESCRIPCIÓN EXTENDIDA), y type es un modificador de la lista de caracteres 'b', 'd', 'f', 'i', ' n ',' r '. El modificador 'b' se comportará como la -b
opción, pero solo se aplicará al field_start o field_end al que está adjunto. Los otros modificadores se comportarán como las opciones correspondientes, pero se aplicarán solo al campo clave al que están adjuntos; Tendrán este efecto si se especifica con field_start , field_end o ambos., ninguna opción se aplicará a ninguno de los dos. Las implementaciones deberán soportar al menos nueve apariciones de la -k
opción, que serán significativas en el orden de la línea de comando. Si no -k
se especifica ninguna opción, se utilizará una clave de clasificación predeterminada de toda la línea.
Cuando hay múltiples campos de clave, las claves posteriores se compararán solo después de que todas las claves anteriores se comparen igual. Excepto cuando el -u
se especifica la opción, las líneas que de otra manera se comparan iguales se ordenarán como si ninguna de las opciones -d
, -f
, -i
, -n
, o -k
estaban presentes (pero con -r
todavía en efecto, si se especificó) y con todos los bytes en las líneas significativas a la comparación. El orden en el que se escriben las líneas que todavía comparan igual no está especificado.
Esto produciría:
42 Life
17 Stackoverflow
12 Hi
9 LaTeX
9 Superuser
9 Ubuntu
7 C++
7 Hash
-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.