Sortierung von Schülerakten nach mehreren Feldern
In diesem Schritt werden wir eine komplexere Schülerakte sortieren, die Name, Alter und Note enthält. Dies ist ein häufiges Szenario bei der Arbeit mit umfassenden Schülerdatenbanken.
Schauen wir uns zunächst unsere Daten an:
cat ~/project/student_records.txt
Sie werden sehen, dass jede Zeile den Namen, das Alter und die Note eines Schülers enthält, getrennt durch Doppelpunkte, wie folgt:
David Lee:21:87
Alice Johnson:18:92
Charlie Brown:19:95
Bob Smith:20:88
Eve Wilson:18:91
Um diese Datei zunächst nach Alter (zweites Feld) und dann nach Note (drittes Feld), wenn die Altersangaben gleich sind, zu sortieren, verwenden wir:
sort -t: -k2n -k3nr ~/project/student_records.txt
Hier ist, was jeder Teil des Befehls bedeutet:
-t:
gibt an, dass die Felder durch Doppelpunkte getrennt sind
-k2n
sortiert anhand des zweiten Felds (Alter) numerisch
-k3nr
sortiert dann anhand des dritten Felds (Note) numerisch in umgekehrter Reihenfolge
Dadurch werden die Schülerakten zunächst nach Alter (aufsteigend) und sekundär nach Note (absteigend), wenn die Altersangaben gleich sind, angezeigt:
Alice Johnson:18:92
Eve Wilson:18:91
Charlie Brown:19:95
Bob Smith:20:88
David Lee:21:87
Diese Art der Mehrfachschlüsselsortierung ist äußerst nützlich, wenn Sie Daten anhand mehrerer Kriterien organisieren müssen. In diesem Fall gruppieren wir die Schüler nach Alter und ordnen sie innerhalb jeder Altersgruppe nach ihren Noten.