$ sort -t $'\t' -k 1rn,1 -k 2,2rn -k 3f,4 listaprezzi
2050 900 bananas 5
1905 700 grapes 17
250 4000 oranges 10
230 9200 figs 4
220 5000 lemons 10
200 8000 pears 8
Quiero ordenar la primera columna listaprezzi
numéricamente al revés (opción rn
), la segunda también rn
y la tercera alfabéticamente ( f
). ¿Cuál es el comando correcto?
Lo he intentado de muchas maneras pero no he tenido éxito.
Respuesta1
Si entiendo correctamente su pregunta, desea reorganizar sus datos, es decir, ordenar de forma independiente (hacia arriba o hacia abajo) diferentes campos de la misma fila. No puedes hacer eso con bare sort
, necesitas usar herramientas adicionales, por ejemplo con la ayuda de awk
y paste
puedes escribir lo siguiente:
$ paste <(awk '{print $1}' listaprezzi | sort -nr) <(awk '{print $2}' \
listaprezzi | sort -nr) <(awk '{print $3}' listaprezzi | sort) <(awk \
'{print $4}' listaprezzi)
Y el resultado es
2050 9200 bananas 5
1905 8000 figs 17
250 5000 grapes 10
230 4000 lemons 4
220 900 oranges 10
200 700 pears 8