GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So sortieren Sie Dateien in Linux mit dem Sortierbefehl

Der Sortierbefehl ist hilfreich, um Zeilen in Textdateien zu sortieren/anzuordnen. Sie können die Daten in einer Textdatei sortieren und die Ausgabe auf dem Bildschirm anzeigen oder in eine Datei umleiten. Basierend auf Ihren Anforderungen bietet sort mehrere Befehlszeilenoptionen zum Sortieren von Daten in einer Textdatei.

Sortierungsbefehlssyntax:

$ sort [-options]

Hier ist zum Beispiel eine Testdatei:

$ cat test
zzz
sss
qqq
aaa
BBB
ddd
AAA

Und hier ist, was Sie erhalten, wenn der Sortierbefehl für diese Datei ohne Option ausgeführt wird. Es sortiert die Zeilen in der Testdatei und zeigt die sortierte Ausgabe an.

$ sort test
aaa
AAA
BBB
ddd
qqq
sss
zzz

1. Führen Sie eine numerische Sortierung mit der Option -n durch

Wenn wir nach numerischen Werten sortieren möchten, können wir -n verwenden oder –numeric-sort Option.

Erstellen Sie für dieses Beispiel die folgende Testdatei:

$ cat test
22 zzz
33 sss
11 qqq
77 aaa
55 BBB

Der folgende sort-Befehl sortiert die Zeilen in der Testdatei nach dem numerischen Wert im ersten Wort der Zeile und zeigt die sortierte Ausgabe an.

$ sort -n test
11 qqq
22 zzz
33 sss
55 BBB
77 aaa

2. Sortieren Sie menschenlesbare Zahlen mit der Option -h

Wenn wir nach menschenlesbaren Zahlen sortieren möchten (z. B. 2K 1M 1G), können wir -h verwenden oder –human-numeric-sort Option.

Erstellen Sie für dieses Beispiel die folgende Testdatei:

$ cat test
2K
2G
1K
6T
1T
1G
2M

Der folgende Sortierbefehl sortiert menschenlesbare Zahlen (z. B. 1K =1 Tausend, 1M =1 Million, 1G =1 Giga, 1T =1 Tera) in der Testdatei und zeigt die sortierte Ausgabe an.

$ sort -h test
1K
2K
2M
1G
2G
1T
6T

3. Sortieren Sie die Monate eines Jahres mit der Option -M

Wenn wir nach Monaten des Jahres sortieren wollen, können wir -M verwenden oder –month-sort Option.

Erstellen Sie für dieses Beispiel die folgende Testdatei:

$ cat test
sept
aug
jan
oct
apr
feb
mar11

Der folgende sort-Befehl sortiert Zeilen in der Testdatei nach Monatsreihenfolge. Beachten Sie, dass die Zeilen in der Datei am Anfang der Zeile mindestens 3 Zeichen des Monatsnamens enthalten sollten (z. B. Jan, Feb, Mär). Wenn wir ja für Januar oder au für August angeben, würde der Sortierbefehl dies nicht als Monatsnamen betrachten.

$ sort -M test
jan
feb
mar11
apr
aug
sept
oct

4. Überprüfen Sie, ob der Inhalt bereits sortiert ist, indem Sie die Option -c verwenden

Wenn wir überprüfen möchten, ob die Daten in der Textdatei sortiert sind oder nicht, können wir -c verwenden oder –check, –check=diagnose-first Option.

Erstellen Sie für dieses Beispiel die folgende Testdatei:

$ cat test
2
5
1
6

Der folgende Sortierbefehl prüft, ob Textdateidaten sortiert sind oder nicht. Wenn dies nicht der Fall ist, wird das erste Vorkommen mit Zeilennummer und ungeordnetem Wert angezeigt.

$ sort -c test
sort: test:3: disorder: 1

5. Kehren Sie die Ausgabe um und prüfen Sie sie auf Eindeutigkeit mit den Optionen -r und -u

Wenn wir eine sortierte Ausgabe in umgekehrter Reihenfolge erhalten möchten, können wir -r verwenden oder –rückwärts Möglichkeit. Wenn die Datei doppelte Zeilen enthält, kann die Option „-u“ verwendet werden, um eindeutige Zeilen in der sortierten Ausgabe zu erhalten.

Erstellen Sie für dieses Beispiel die folgende Testdatei:

$ cat test
5
2
2
1
4
4

Der folgende sort-Befehl sortiert die Zeilen in der Testdatei in umgekehrter Reihenfolge und zeigt die sortierte Ausgabe an.

$ sort -r test
5
4
4
2
2
1

Der folgende Sortierbefehl sortiert Zeilen in der Testdatei in umgekehrter Reihenfolge und entfernt doppelte Zeilen aus der sortierten Ausgabe.

$ sort -r -u test
5
4
2
1

6. Sortieren Sie den Inhalt selektiv, passen Sie das Trennzeichen an, schreiben Sie die Ausgabe in eine Datei mit den Optionen -k, -t, -o

Wenn wir nach der Spalten- oder Wortposition in Zeilen der Textdatei sortieren möchten, kann die Option „-k“ verwendet werden. Wenn wir jedes Wort in jeder Dateizeile durch ein Trennzeichen außer „Leerzeichen“ trennen, können wir das Trennzeichen mit der Option „-t“ angeben. Wir können eine sortierte Ausgabe in jeder angegebenen Ausgabedatei (mit der Option „-o“) erhalten, anstatt die Ausgabe auf der Standardausgabe anzuzeigen.

Erstellen Sie für dieses Beispiel die folgende Testdatei:

$ cat test
aa aa zz
aa aa ff
aa aa tt
aa aa kk

Der folgende sort-Befehl sortiert die Zeilen in der Testdatei nach dem 3. Wort jeder Zeile und zeigt die sortierte Ausgabe an.

$ sort -k3 test
aa aa ff
aa aa kk
aa aa tt
aa aa zz
$ cat test
aa|5a|zz
aa|2a|ff
aa|1a|tt
aa|3a|kk

Hier kommen insgesamt mehrere Optionen zum Einsatz. In der Testdatei werden die Wörter in jeder Zeile durch das Trennzeichen „|“ getrennt. Es sortiert die Zeilen in der Testdatei nach dem 2. Wort jeder Zeile auf der Grundlage des numerischen Werts und speichert die sortierte Ausgabe in der angegebenen Ausgabedatei.

$ sort -n -t'|' -k2 test -o outfile

Der Inhalt der Ausgabedatei wird unten angezeigt.

$ cat outfile
aa|1a|tt
aa|2a|ff
aa|3a|kk
aa|5a|zz


Linux
  1. So benennen Sie Dateien unter Linux um

  2. So führen Sie einen zeilenweisen Vergleich von Dateien in Linux mit dem Befehl diff durch - Teil II

  3. So führen Sie einen zeilenweisen Vergleich von Dateien in Linux mit dem Befehl diff durch

  4. So starten Sie Linux über die Befehlszeile neu

  5. So übertragen Sie Dateien sicher mit dem SCP-Befehl unter Linux

So testen Sie die Internetgeschwindigkeit über die Befehlszeile in Linux

So benennen Sie Dateien über die Befehlszeile in Linux um

So sortieren Sie Dateien in Linux (GUI und Shell)

So kopieren Sie Dateien unter Linux mit dem CP-Befehl

So zählen Sie Dateien im Verzeichnis unter Linux

So laden Sie Dateien in Rocky Linux 8 über die Befehlszeile mit wget herunter