Linux sort Command Tutorial für Anfänger (8 Beispiele)
Suchen Sie ein Befehlszeilenprogramm zum Sortieren von Inhalten in Textdateien? Suchen Sie nicht weiter als Sort, ein speziell für diesen Zweck entwickeltes Werkzeug. In diesem Tutorial werden wir diesen Befehl anhand einiger leicht verständlicher Beispiele diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf Ubuntu 22.04 LTS getestet wurden.
Linux Sortierbefehl
Mit dem Befehl Sort können Sie Zeilen in einer Textdatei sortieren. Folgendes ist seine Syntax:
sort [OPTION]... [FILE]...
Und so beschreibt es die Man Page des Tools:
Write sorted concatenation of all FILE(s) to standard output. With no FILE, or when FILE is -, read standard input.
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie Sortieren funktioniert.
Q1. Wie verwendet man den Sortierbefehl?
Angenommen, Sie haben eine Datei, die einige Namen enthält, und Sie möchten diese in alphabetischer Reihenfolge sortieren. Dann müssen Sie nur noch den Namen der Datei als Eingabe an den Sortierbefehl übergeben.
Zum Beispiel:
sort file1
Wenn also Datei 1 die folgenden Zeilen enthält:
Zimbabwe Serbia Norway Australia
Dann wäre die Ausgabe:
Australia Norway Serbia Zimbabwe
Q2. Wie kann man die Sortierung dazu bringen, führende Leerzeichen zu ignorieren?
Abhängig von Ihrem Gebietsschema können Sie sehen, wie die Sortierung zu unerwarteten Ergebnissen führt, wenn Zeilen führende Leerzeichen enthalten. Zum Beispiel:
Angenommen, die Datei enthält folgende Zeilen:
Zimbabwe Serbia Norway Australia
Und Sie laufen sortiert, nur um das folgende Ergebnis zu sehen:
Norway Serbia Australia Zimbabwe
Das mag unerwartet aussehen, aber was tatsächlich passiert ist, ist, dass Zeilen, die führende Leerzeichen enthalten, auf der Grundlage von Leerzeichen sortiert wurden, während andere alphabetisch sortiert wurden. Um sicherzustellen, dass der Befehl Sort führende Leerzeichen ignoriert, verwenden Sie die Option -b. In diesem Fall erhalten Sie also das folgende Ergebnis:
Australia Norway Serbia Zimbabwe
Q3. Wie kann man eine Sorte dazu bringen, den Fall zu ignorieren?
Wenn eine Datei Wörter/Zeilen enthält, die sowohl mit Groß- als auch mit Kleinbuchstaben beginnen, zeigt sort die mit Großbuchstaben oben an. Wenn Sie möchten, können Sie dieses Verhalten jedoch mit der Befehlszeilenoption -f ändern.
Zum Beispiel:
sort -f file1
Q4. Wie kann man Sortiervergleichszahlen erstellen?
Angenommen, eine Datei enthält nur Zahlen, und Sie möchten sie sortieren, um sie zu sortieren. Dann kann dies mit der Kommandozeilenoption -g ermöglicht werden.
sort -g file1
Zum Beispiel eine Datei mit folgendem Inhalt:
32000 2500 50000 54
Kann mit dem Befehl sort sortiert werden, um folgende Ergebnisse zu erhalten:
54 2500 32000 50000
Q5. Wie kann man die Sortierung mit menschenlesbaren Zahlenwerten zum Laufen bringen?
Wenn Sie mit menschenlesbaren Zahlenwerten wie 1K, 2G usw. arbeiten möchten, verwenden Sie die Befehlszeilenoption -h.
sort -h file1
So zum Beispiel eine Datei mit folgenden Zeilen:
1M 2G 3K
Kann mit der Option -h wie folgt sortiert werden:
3K 1M 2G
Q6. Wie kann man festlegen, dass nur nach sortierten Eingaben gesucht wird?
Für den Fall, dass Sie sortieren möchten, um nur zu prüfen, ob eine Datei sortiert ist oder nicht, verwenden Sie die Befehlszeilenoption -c.
sort -c file1
Zum Beispiel, wenn file1 die folgenden Zeilen enthält:
dhg lkh zyb abd
Dann wird mit -c sort die folgende Ausgabe erzeugen:
sort: file1:4: disorder: abd
Sie beobachten also, dass das Tool nicht nur auf eine Störung hinweist, sondern auch deren Position ausgibt.
Q7. Wie kann man die Sortierung veranlassen, bereits sortierte Dateien zusammenzuführen?
Wenn Sie sortieren möchten, um zwei bereits sortierte Dateien zusammenzuführen, verwenden Sie die Befehlszeilenoption -m.
sort -m file1 file2
Zum Beispiel enthielten sowohl file1 als auch file2 in meinem Fall folgende Zeilen:
abd dhg lkh zyb
Und so hat die Option -m diese Dateien zusammengeführt:
abd abd dhg dhg lkh lkh zyb zyb
Q8. Wie lässt man eine Sortierung das Ergebnis in eine Datei schreiben?
Standardmäßig schreibt der Sortierbefehl die Ausgabe an STDOUT. Sie können es jedoch mit der Option -o zwingen, in eine bestimmte Datei zu schreiben.
Zum Beispiel:
sort file1 -o output.txt
Fazit
Der Befehl Sort bietet viele Optionen. Wir haben hier einige wichtige Punkte besprochen. Wir empfehlen dir, diese zuerst zu üben, und wenn du fertig bist, gehe auf die Manpage des Befehls, um mehr darüber zu erfahren. Sie können den Sort befehl auch in Verbindung mit find einsetzen.