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.

Das könnte dich auch interessieren …