Detaillierte Erläuterung des Sortierbefehls im Linux-System

Linux-Systeme stellen sortBefehle zum Sortieren von Textdateien bereit. sortBefehle können nach Zeile, Feld oder Nummer sortiert werden und unterstützen verschiedene Sortieroptionen, um unterschiedlichen Sortieranforderungen gerecht zu werden.

Grundlegende Syntax und Optionen

sortDie grundlegende Syntax des Befehls lautet wie folgt:

sort [选项] [文件]

Zu den gängigen Optionen gehören:

  • -r: Sortierung in umgekehrter Reihenfolge (absteigend).
  • -n: Nach Wert sortieren.
  • -k 字段: Nach dem angegebenen Feld sortieren. Dieser Parameter kann mehrere durch Kommas getrennte Felder angeben. Das Standardfeldtrennzeichen ist Tabulator oder Leerzeichen.
  • -t 分隔符: Gibt das Trennzeichen für das Feld an.
  • -u: Doppelte Zeilen entfernen und nur das erste Vorkommen beibehalten.
  • -f: Unabhängig von der Groß-/Kleinschreibung sortieren.
  • -b: Leerzeichen am Anfang der Zeile werden beim Sortieren ignoriert.
  • -c: Überprüfen Sie, ob die Datei sortiert wurde. Wenn nicht, wird die erste Zeile ausgegeben, die nicht mit der Sortierreihenfolge übereinstimmt.
  • -f: Unabhängig von der Groß-/Kleinschreibung sortieren. Bei der Sortierung wird beispielsweise sort -f file.txtdie Groß-/Kleinschreibung des ersten Buchstabens einer Zeile ignoriert.
  • -b: Leerzeichen am Anfang der Zeile werden beim Sortieren ignoriert.
  • -c: Überprüfen Sie, ob die Datei sortiert wurde. Wenn nicht, wird die erste Zeile ausgegeben, die nicht mit der Sortierreihenfolge übereinstimmt.

nach Zeile sortieren

sortDer Befehl sortiert jede Zeile standardmäßig lexikografisch. Angenommen, Sie haben eine file.txtTextdatei mit dem folgenden Inhalt:

apple
banana
cherry

Um die Dateien alphabetisch zu sortieren, können Sie den folgenden Befehl ausführen:

sort file.txt

Das Ergebnis der Operation ist wie folgt:

apple
banana
cherry

nach Feld sortieren

Normalerweise enthält jede Zeile einer Textdatei mehrere Felder, die durch Trennzeichen (z. B. Tabulatoren oder Leerzeichen) getrennt sind. sortBefehle können nach angegebenen Feldern sortiert werden.

Angenommen, es gibt eine data.txtTextdatei mit dem folgenden Inhalt:

Tom 25 Male
Jerry 22 Female
Alice 27 Female

Um nach dem zweiten Feld (Alter) zu sortieren, können Sie mit -kder Option das zu sortierende Feld und -tdas Trennzeichen für das Feld (hier ein Leerzeichen) mit der Option angeben:

sort -k 2 -t ' ' data.txt

Das Ergebnis der Operation ist wie folgt:

Jerry 22 Female
Tom 25 Male
Alice 27 Female

numerische Ordnung

Standardmäßig sortsortiert der Befehl Zahlen lexikografisch. Wenn Sie nach numerischem Wert sortieren müssen, können Sie -ndie Option verwenden.

Angenommen, es gibt eine numbers.txtTextdatei mit dem folgenden Inhalt:

10
2
100
50

Um numerisch zu sortieren, können Sie den folgenden Befehl ausführen:

sort -n numbers.txt

Das Ergebnis der Operation ist wie folgt:

2
10
50
100

umgekehrte Reihenfolge

Standardmäßig sortwerden Befehle in aufsteigender Reihenfolge (vom kleinsten zum größten) sortiert. Wenn Sie in absteigender Reihenfolge (vom Größten zum Kleinsten) sortieren müssen, können Sie -rdiese Option verwenden.

Um mit numbers.txtder Datei als Beispiel fortzufahren und in umgekehrter Reihenfolge zu sortieren, können Sie den folgenden Befehl ausführen:

sort -n -r numbers.txt

Das Ergebnis der Operation ist wie folgt:

100
50
10
2

Entfernen Sie doppelte Zeilen

sortDer Befehl kann auch verwendet werden, um doppelte Zeilen in einer Textdatei zu entfernen und nur das erste Vorkommen beizubehalten. Dies wird mit -uder Option erreicht.

Angenommen, es gibt eine names.txtTextdatei mit dem folgenden Inhalt:

Tom
Jerry
Tom
Alice
Jerry

Um doppelte Zeilen zu entfernen, können Sie den folgenden Befehl ausführen:

sort -u names.txt

Das Ergebnis der Operation ist wie folgt:

Alice
Jerry
Tom

Sortieren Sie nach mehreren Feldern

sortDer Befehl unterstützt das Sortieren nach mehreren Feldern. -kZur Angabe der zu sortierenden Felder und der Sortierreihenfolge können mehrere Optionen verwendet werden. Angenommen, Sie haben eine data.txtTextdatei mit dem folgenden Inhalt:

Tom 25 Male
Jerry 22 Female
Alice 27 Female

Um nach Geschlecht (drittes Feld) in absteigender Reihenfolge und dann nach Alter (zweites Feld) in aufsteigender Reihenfolge zu sortieren, können Sie den folgenden Befehl ausführen:

sort -k 3r -k 2n data.txt

Das Ergebnis der Operation ist wie folgt:

Alice 27 Female
Jerry 22 Female
Tom 25 Male

Hier gibt „use -k 3r“ an, dass in absteigender Reihenfolge nach dem dritten Feld sortiert werden soll ( rgibt die umgekehrte Reihenfolge an), und verwendet dann -k 2n, um anzugeben, dass in aufsteigender Reihenfolge nach dem zweiten Feld sortiert werden soll ( ngibt an, dass nach Wert sortiert werden soll).

ignoriere führende Zeichen

Manchmal kann jede Zeile einer Textdatei einige führende Zeichen wie Leerzeichen oder Tabulatoren enthalten. Wenn Sie diese führenden Zeichen beim Sortieren ignorieren möchten, können Sie -bdie Option verwenden. Angenommen, Sie haben eine file.txtTextdatei mit dem folgenden Inhalt:

   apple
	banana
	cherry

Um führende Leerzeichen und Tabulatoren beim Sortieren zu ignorieren, können Sie den folgenden Befehl ausführen:

sort -b file.txt

Das Ergebnis der Operation ist wie folgt:

apple
banana
cherry

Mehrere Dateien sortiert zusammenführen

sortCommand kann auch mehrere Dateien zusammenführen und sortieren. Listen Sie einfach die zu sortierenden Dateinamen einzeln auf. Angenommen, es gibt zwei Dateien file1.txtund file2.txtder Inhalt lautet wie folgt:

=== file1.txt ===
apple
cherry

=== file2.txt ===
banana
orange

Um zwei Dateien zu kombinieren und lexikografisch zu sortieren, können Sie den folgenden Befehl ausführen:

sort file1.txt file2.txt

Das Ergebnis der Operation ist wie folgt:

apple
banana
cherry
orange

Das Ergebnis der Zusammenführung ist die Sortierung der Inhalte beider Dateien als Ganzes.

Sortieren Sie die aus der Standardeingabe gelesenen Daten

Zusätzlich zum Lesen von Daten aus Dateien sortkönnen Befehle auch Daten aus der Standardeingabe lesen und sortieren. Dies lässt sich bequem mit anderen Befehlen kombinieren. Um beispielsweise eine Reihe von Zahlen zu sortieren, können Sie diese an sortden Befehl weiterleiten. Zum Beispiel:

echo -e "3\n1\n2" | sort -n

Das Ergebnis der Operation ist wie folgt:

1
2
3

Hier echowird der Befehl zum Generieren einer Reihe von Zahlen verwendet und zur Sortierung an den Befehl |weitergeleitet .sort

Ich denke du magst

Origin blog.csdn.net/u012581020/article/details/132324749
Empfohlen
Rangfolge