Linux sort-Befehl: Textsortierung

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie den vielseitigen sort-Befehl in Linux erkunden, ein leistungsstarkes Werkzeug zur Organisation und Anordnung von Textdaten. Als Schuladministrator 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 Sie Daten in realen Szenarien mit Linux-Befehlszeilentools manipulieren können.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 98% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Grundlegende Sortierung von Schülernamen

Beginnen wir damit, eine Liste von Schülernamen alphabetisch zu sortieren. Dies ist eine häufige Aufgabe beim Erstellen von Klassenlisten oder der Organisation von Schülerakten.

Zunächst lassen Sie uns den Inhalt unserer Schülerliste anzeigen:

cat ~/project/students.txt

Sie sollten eine Liste von Schülernamen in keiner bestimmten Reihenfolge sehen, ähnlich wie diese:

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 wie folgt aussehen:

Alice Johnson
Bob Smith
Charlie Brown
David Lee
Eve Wilson

Der sort-Befehl sortiert standardmäßig die Zeilen alphabetisch. Er vergleicht die Zeilen Zeichen für Zeichen, beginnend am Anfang jeder Zeile. Deshalb kommt "Alice" vor "Bob" und so weiter.

Wenn Sie keine Ausgabe sehen, keine Sorge! Der Befehl hat funktioniert, aber er hat das Ergebnis einfach im Terminal angezeigt. Wenn Sie die sortierte Liste in einer neuen Datei speichern möchten, können Sie den Ausgabeumleitungsoperator > wie folgt verwenden: sort ~/project/students.txt > ~/project/sorted_students.txt

Sortierung der Schüleralter

Als nächstes werden wir die Schüler nach ihrem Alter sortieren. Dies kann nützlich sein, wenn Sie Schüler in altersgemäße Gruppen oder Aktivitäten einteilen möchten.

Schauen wir uns zunächst unsere Daten an:

cat ~/project/student_ages.txt

Sie werden eine Liste von Schülern mit ihren Altersangaben sehen, wie diese:

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, die sort anweist, die Zahlen als numerische Werte und nicht als Zeichenketten zu behandeln:

sort -n -t: -k2 ~/project/student_ages.txt

Lassen Sie uns diesen Befehl zerlegen:

  • -n: Diese Option teilt sort mit, eine numerische Sortierung durchzuführen.
  • -t:: Dies gibt an, dass die Felder durch Doppelpunkte getrennt sind.
  • -k2: Dies teilt sort mit, dass das zweite Feld (das Alter) als Sortierschlüssel verwendet werden soll.

Dadurch wird die Liste der Schüler von jüngsten bis ältesten angezeigt:

Alice Johnson:18
Eve Wilson:18
Charlie Brown:19
Bob Smith:20
David Lee:21

Ohne die Option -n würde sort die Altersangaben als Zeichenketten behandeln, was zu einer falschen Reihenfolge führen würde (z. B. 18, 19, 20, 21, 3). Die Option -n stellt sicher, dass die numerische Reihenfolge korrekt ist.

Umgekehrte Sortierung von Schülerleistungen

Nun sortieren wir die Schülerleistungen in absteigender Reihenfolge. Dies wird oft verwendet, wenn Schüler gerankt oder die besten Leistenden identifiziert werden sollen.

Zunächst schauen wir uns die aktuelle Liste an:

cat ~/project/student_grades.txt

Sie sollten etwas wie Folgendes sehen:

David Lee:87
Alice Johnson:92
Charlie Brown:95
Bob Smith:88
Eve Wilson:91

Um die Leistungen von höchster bis niedrigster zu sortieren, verwenden wir die Option -r für umgekehrte Reihenfolge zusammen mit -n für numerische Sortierung:

sort -nr -t: -k2 ~/project/student_grades.txt

Hier ist, was jeder Teil des Befehls macht:

  • -n: Führt eine numerische Sortierung durch
  • -r: Kehrt die Sortierreihenfolge um (absteigend statt aufsteigend)
  • -t:: Gibt an, dass die Felder durch Doppelpunkte getrennt sind
  • -k2: Verwende das zweite Feld (die Leistung) als Sortierschlüssel

Dieser Befehl wird die Schülerleistungen von höchster bis niedrigster anzeigen:

Charlie Brown:95
Alice Johnson:92
Eve Wilson:91
Bob Smith:88
David Lee:87

Die Option -r ist besonders nützlich, wenn Sie zunächst die höchsten Werte sehen möchten, was in vielen realen Szenarien wie Ranking, Identifizierung der besten Leistenden oder Priorisierung von Aufgaben üblich ist.

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.

Entfernen von doppelten Einträgen

Manchmal können Schülerakten Duplikate enthalten, möglicherweise aufgrund von Dateneingabefehlern oder mehrfachen Einreichungen. Lernen wir, wie wir diese Duplikate entfernen können.

Zunächst schauen wir uns eine Datei mit potenziellen Duplikaten an:

cat ~/project/student_clubs.txt

Sie könnten etwas wie Folgendes sehen:

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, verwenden wir die Option -u:

sort -u ~/project/student_clubs.txt

Dieser Befehl wird eine sortierte Liste eindeutiger Schülerclubmitgliedschaften anzeigen:

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 teilt sort mit, nur die erste Zeile einer Reihe gleicher Zeilen auszugeben. Mit anderen Worten, es entfernt Duplikate nach der Sortierung. Dies ist besonders nützlich, wenn Sie eine Liste eindeutiger Einträge erstellen müssen oder wenn Sie versuchen, redundante Daten zu identifizieren und zu eliminieren.

Beachten Sie, dass "Bob Smith" zweimal erscheint, weil er in zwei verschiedenen Clubs ist – diese werden nicht als Duplikate angesehen, da die gesamte Zeile unterschiedlich ist.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Befehl sort verwenden, um verschiedene Arten von Schülerdaten zu organisieren. Sie haben mehrere nützliche Optionen erkundet:

  • Grundlegende alphabetische Sortierung
  • Numerische Sortierung mit -n
  • Umgekehrte Sortierung mit -r
  • Sortierung nach mehreren Feldern mit -k
  • Verwendung benutzerdefinierter Feldtrennzeichen mit -t
  • Entfernen von Duplikaten mit -u

Weitere nützliche Optionen von sort sind:

  • -f: Groß- und Kleinschreibung bei der Sortierung ignorieren
  • -b: Führende Leerzeichen ignorieren
  • -c: Prüfen, ob die Eingabe bereits sortiert ist
  • -o: Ausgabe in eine Datei statt auf die Standardausgabe schreiben

Diese Fähigkeiten werden in verschiedenen beruflichen Zusammenhängen, nicht nur im Bildungsbereich, unschätzbar sein, wenn Sie Daten verwalten und analysieren.