Einführung
In diesem Praktikum erkunden Sie den vielseitigen sort-Befehl in Linux, ein leistungsstarkes Werkzeug zum Organisieren und Anordnen von Textdaten. In der Rolle eines Schuladministrators werden Sie verschiedene Optionen des sort-Befehls nutzen, um Schülerinformationen effizient zu verwalten und zu analysieren. Diese praktische Erfahrung wird Ihnen helfen zu verstehen, wie man Daten in realen Szenarien mit Hilfe von Linux-Kommandozeilenwerkzeugen manipuliert.
Grundlegendes Sortieren von Schülernamen
Beginnen wir damit, eine Liste von Schülernamen alphabetisch zu sortieren. Dies ist eine typische Aufgabe beim Erstellen von Klassenlisten oder beim Organisieren von Schülerakten.
Schauen wir uns zunächst den Inhalt unserer Schülerliste an:
cat ~/project/students.txt
Sie sollten eine Liste von Schülernamen in ungeordneter Reihenfolge sehen, ähnlich wie hier:
David Lee
Alice Johnson
Charlie Brown
Bob Smith
Eve Wilson
Nun verwenden wir den sort-Befehl, um diese Namen alphabetisch zu ordnen:
sort ~/project/students.txt
Dieser Befehl zeigt die sortierte Liste der Schülernamen auf Ihrem Bildschirm an. Die Ausgabe sollte so aussehen:
Alice Johnson
Bob Smith
Charlie Brown
David Lee
Eve Wilson
Der sort-Befehl sortiert standardmäßig Zeilen alphabetisch. Er vergleicht die Zeilen Zeichen für Zeichen, beginnend am Anfang jeder Zeile. Deshalb steht "Alice" vor "Bob" und so weiter.
Falls Sie keine Ausgabe sehen, keine Sorge! Der Befehl hat funktioniert, aber er hat das Ergebnis lediglich im Terminal ausgegeben. Wenn Sie die sortierte Liste in einer neuen Datei speichern möchten, können Sie den Umleitungsoperator > verwenden, zum Beispiel so: sort ~/project/students.txt > ~/project/sorted_students.txt
Schüleralter sortieren
Als Nächstes sortieren wir die Schüler nach ihrem Alter. Dies kann nützlich sein, um Schüler in altersgerechte Gruppen oder Aktivitäten einzuteilen.
Betrachten wir zuerst unsere Daten:
cat ~/project/student_ages.txt
Sie sehen eine Liste von Schülern mit ihrem jeweiligen Alter:
David Lee:21
Alice Johnson:18
Charlie Brown:19
Bob Smith:20
Eve Wilson:18
Um diese Liste nach Alter zu sortieren, verwenden wir die Option -n. Diese weist sort an, die Zahlen als numerische Werte und nicht als bloße Zeichenfolgen zu behandeln:
sort -n -t: -k2 ~/project/student_ages.txt
Lassen Sie uns diesen Befehl im Detail betrachten:
-n: Diese Option weistsortan, eine numerische Sortierung durchzuführen.-t:: Dies legt fest, dass die Felder durch Doppelpunkte getrennt sind.-k2: Dies weistsortan, das zweite Feld (das Alter) als Sortierschlüssel zu verwenden.
Dadurch wird die Liste der Schüler vom jüngsten zum ältesten sortiert angezeigt:
Alice Johnson:18
Eve Wilson:18
Charlie Brown:19
Bob Smith:20
David Lee:21
Ohne die Option -n würde sort das Alter als Text behandeln, was zu einer falschen Reihenfolge führen könnte (z. B. stünde 18 vor 2, aber nach 111). Die Option -n stellt die korrekte numerische Reihenfolge sicher.
Umgekehrte Sortierung von Schülernoten
Nun sortieren wir die Noten der Schüler in absteigender Reihenfolge. Dies wird häufig verwendet, um Ranglisten zu erstellen oder die besten Leistungen zu identifizieren.
Zuerst schauen wir uns die aktuelle Liste an:
cat ~/project/student_grades.txt
Sie sollten etwas Ähnliches wie das hier sehen:
David Lee:87
Alice Johnson:92
Charlie Brown:95
Bob Smith:88
Eve Wilson:91
Um die Noten von der höchsten zur niedrigsten zu sortieren, verwenden wir die Option -r für die umgekehrte Reihenfolge (reverse) zusammen mit -n für die numerische Sortierung:
sort -nr -t: -k2 ~/project/student_grades.txt
Hier ist die Funktion der einzelnen Bestandteile:
-n: Führt eine numerische Sortierung durch.-r: Kehrt die Sortierreihenfolge um (absteigend statt aufsteigend).-t:: Legt fest, dass Felder durch Doppelpunkte getrennt sind.-k2: Verwendet das zweite Feld (die Note) als Sortierschlüssel.
Dieser Befehl zeigt die Schülernoten von der höchsten zur niedrigsten an:
Charlie Brown:95
Alice Johnson:92
Eve Wilson:91
Bob Smith:88
David Lee:87
Die Option -r ist besonders nützlich, wenn Sie die höchsten Werte zuerst sehen möchten, was in vielen praktischen Szenarien wie Rankings, Leistungsanalysen oder der Priorisierung von Aufgaben üblich ist.
Schülerdatensätze nach mehreren Feldern sortieren
In diesem Schritt sortieren wir einen komplexeren Datensatz, der Name, Alter und Note enthält. Dies ist ein häufiges Szenario beim Umgang mit umfassenden Schülerdatenbanken.
Schauen wir uns zuerst die Daten an:
cat ~/project/student_records.txt
Jede Zeile enthält den Namen, das Alter und die Note eines Schülers, getrennt durch Doppelpunkte:
David Lee:21:87
Alice Johnson:18:92
Charlie Brown:19:95
Bob Smith:20:88
Eve Wilson:18:91
Um diese Datei primär nach Alter (zweites Feld) und sekundär nach Note (drittes Feld) zu sortieren (falls das Alter gleich ist), verwenden wir:
sort -t: -k2n -k3nr ~/project/student_records.txt
Das bedeuten die einzelnen Teile des Befehls:
-t:legt fest, dass Felder durch Doppelpunkte getrennt sind.-k2nsortiert basierend auf dem zweiten Feld (Alter) numerisch.-k3nrsortiert anschließend basierend auf dem dritten Feld (Note) numerisch und in umgekehrter Reihenfolge.
Dies zeigt die Datensätze primär nach Alter (aufsteigend) und bei gleichem Alter sekundär nach Note (absteigend) sortiert an:
Alice Johnson:18:92
Eve Wilson:18:91
Charlie Brown:19:95
Bob Smith:20:88
David Lee:21:87
Diese Art der Sortierung über mehrere Schlüssel ist extrem nützlich, wenn Sie Daten nach mehreren Kriterien organisieren müssen. In diesem Fall gruppieren wir die Schüler nach Alter und erstellen innerhalb jeder Altersgruppe eine Rangliste nach ihren Noten.
Duplikate entfernen
Manchmal können Schülerdatensätze Duplikate enthalten, etwa durch Eingabefehler oder mehrfache Einreichungen. Wir lernen nun, wie man diese Duplikate entfernt.
Schauen wir uns zunächst eine Datei mit potenziellen Duplikaten an:
cat ~/project/student_clubs.txt
Sie sehen eventuell so etwas:
Alice Johnson:Chess Club
Bob Smith:Debate Team
Charlie Brown:Chess Club
David Lee:Science Club
Eve Wilson:Debate Team
Alice Johnson:Chess Club
Bob Smith:Science Club
Um diese Liste zu sortieren und Duplikate zu entfernen, nutzen wir die Option -u (unique):
sort -u ~/project/student_clubs.txt
Dieser Befehl zeigt eine sortierte Liste der eindeutigen Club-Mitgliedschaften an:
Alice Johnson:Chess Club
Bob Smith:Debate Team
Bob Smith:Science Club
Charlie Brown:Chess Club
David Lee:Science Club
Eve Wilson:Debate Team
Die Option -u weist sort an, bei identischen Zeilen nur die erste auszugeben. Mit anderen Worten: Doppelte Zeilen werden nach der Sortierung entfernt. Dies ist besonders hilfreich, wenn Sie eine Liste mit eindeutigen Einträgen erstellen oder redundante Daten eliminieren möchten.
Beachten Sie, dass "Bob Smith" zweimal erscheint, da er in zwei verschiedenen Clubs ist – dies wird nicht als Duplikat gewertet, da sich die gesamte Zeile unterscheidet.
Zusammenfassung
In diesem Praktikum haben Sie gelernt, wie Sie den sort-Befehl verwenden, um verschiedene Arten von Schülerdaten zu organisieren. Sie haben mehrere nützliche Optionen kennengelernt:
- Grundlegende alphabetische Sortierung
- Numerische Sortierung mit
-n - Umgekehrte Sortierung mit
-r - Sortieren nach mehreren Feldern mit
-k - Verwendung benutzerdefinierter Trennzeichen mit
-t - Entfernen von Duplikaten mit
-u
Weitere nützliche sort-Optionen sind:
-f: Ignoriert Groß- und Kleinschreibung beim Sortieren.-b: Ignoriert führende Leerzeichen.-c: Prüft, ob die Eingabe bereits sortiert ist.-o: Schreibt die Ausgabe in eine Datei statt in die Standardausgabe.
Diese Fertigkeiten sind bei der Verwaltung und Analyse von Daten in vielen beruflichen Kontexten von unschätzbarem Wert, nicht nur im Bildungswesen.



