
10 awhdk;
14 hjoeow;
2 kdkld;
4 jkjdksl
¿Cómo ordenar esto según la columna uno (es decir, el recuento)?
Me gustaría obtener este resultado:
14 hjoeow;10 awhdk;4 jkjdksl;2 kdkld
Necesito que ambas columnas se impriman según la clasificación de la primera columna.
Respuesta1
Puede utilizar -k
para especificar en qué parte de la línea de entrada comienza y termina la clave de clasificación.
Utilice la -n
opción o agregue n
a la especificación de clave de clasificación para activar una clasificación numérica en lugar de una clasificación léxica de forma predeterminada. Y -r
para revertir el tipo.
Aquí, para una clasificación numérica, no es necesario limitar la clave de clasificación al comando de clasificación. Si lo haces:
sort -rn file
Tratará toda la línea como un número. La 14 hjoeow;
línea, por ejemplo, se entenderá como el 14
número.
Podrías hacerlo:
sort -bk 1,1rn file
Ordenar solo en el primer campo, pero eso no haría ninguna diferencia.
El comando para unir líneas está paste
con la -s
opción. Puede especificar el delimitador con -d
.\0
es un valor especial para el delimitador que significaunirse sin nada en el medio. Entonces, para obtener el resultado esperado:
sort -rn file | paste -sd '\0' -
POSIX paste
requiere que se pase un nombre de archivo.-
es nuevamente un valor especial que significaentrada estándar. Puede omitirlo con algunas paste
implementaciones.