Ordenamiento de registros de estudiantes por múltiples campos
En este paso, ordenaremos un registro de estudiantes más complejo que incluye nombre, edad y calificación. Este es un escenario común cuando se trabaja con bases de datos completas de estudiantes.
Primero, echemos un vistazo a nuestros datos:
cat ~/project/student_records.txt
Verás que cada línea contiene el nombre, la edad y la calificación de un estudiante, separados por dos puntos, como este:
David Lee:21:87
Alice Johnson:18:92
Charlie Brown:19:95
Bob Smith:20:88
Eve Wilson:18:91
Para ordenar este archivo por edad (segundo campo) y luego por calificación (tercer campo) si las edades son iguales, usaremos:
sort -t: -k2n -k3nr ~/project/student_records.txt
A continuación, se explica lo que significa cada parte del comando:
-t:
especifica que los campos están separados por dos puntos
-k2n
ordena en función del segundo campo (edad) numéricamente
-k3nr
luego ordena en función del tercer campo (calificación) numéricamente en orden inverso
Esto mostrará los registros de estudiantes ordenados primero por edad (en orden ascendente) y luego por calificación (en orden descendente) cuando las edades son iguales:
Alice Johnson:18:92
Eve Wilson:18:91
Charlie Brown:19:95
Bob Smith:20:88
David Lee:21:87
Este tipo de ordenamiento por múltiples claves es extremadamente útil cuando se necesita organizar datos en función de múltiples criterios. En este caso, estamos agrupando a los estudiantes por edad y, dentro de cada grupo de edad, los estamos clasificando por sus calificaciones.