So sortieren Sie Textdateien in Linux mit dem Befehl sort
Linux bietet Ihnen mehrere Dienstprogramme, mit denen Sie Textdateien verarbeiten können. Egal, ob Sie doppelte Daten entfernen oder den Inhalt einer Datei sortieren möchten, Linux-Befehlszeilentools bieten alles, was Sie brauchen.
Dieser Artikel zeigt den Sortierbefehl und wie Sie ihn verwenden können, um den Inhalt in einer Textdatei zu sortieren und entsprechend anzuordnen.
Was ist der Sortierbefehl?
Wie oben erwähnt, hilft der Sortierbefehl einem Benutzer, den Inhalt einer Textdatei in einer bestimmten Reihenfolge anzuordnen. Es stehen mehrere Optionen zur Verfügung, mit denen Sie die Datei nach Ihren Wünschen sortieren können. Es ist ein Standard-Linux-Programm, das eine Textdatei alphabetisch, numerisch, nach Spalten usw. sortieren kann, entweder in normaler oder umgekehrter Reihenfolge.
Andere Funktionen des Befehls umfassen das Ignorieren von Groß-/Kleinschreibung beim Sortieren, das Sortieren einer Datei nach Monat, das Ignorieren von Leerzeichen in einer Datei und das zufällige Sortieren. Mit sort können Sie auch prüfen, ob eine Datei bereits sortiert ist oder nicht.
So verwenden Sie die Sortierung unter Linux
Obwohl sort mehrere Methoden und Flags enthält, die Sie verwenden können, ist es dennoch leicht zu erlernen.
Grundsyntax
Die grundlegende Syntax für die Verwendung von sort ist:
sort filename
…wobei Dateiname der absolute oder relative Pfad der zu sortierenden Textdatei ist.
Standardmäßig ordnet sort den Inhalt nach den folgenden Kriterien an:
- Zeilen, die mit numerischen Zeichen beginnen, haben die höchste Priorität.
- Der Befehl sortiert die Zeilen alphabetisch, nachdem die Zeilen mit Zahlen beginnend sortiert wurden.
- Zeilen, die mit Kleinbuchstaben beginnen, gehen den Zeilen voraus, die mit dem gleichen Zeichen in Großbuchstaben beginnen.
Betrachten Sie eine Textdatei namens textfile.txt mit den folgenden Informationen:
So sortieren Sie die Datei mit der Standardkonfiguration:
sort textfile.txt
Ausgabe:
Erstellen Sie eine neue Ausgabedatei
Der Sortierbefehl ändert den Inhalt der Datei nicht. Es sendet einfach den sortierten Inhalt an die Standardausgabe. Dies bedeutet jedoch nicht, dass sort keine neue Datei erstellen kann. Sie können das Flag -o verwenden, um den Namen der sortierten Datei anzugeben, und sort erstellt die Datei automatisch für Sie und fügt den Inhalt hinzu.
sort -o sortedfile filename
… wo sortedfile ist der Name der Ausgabedatei und den Dateinamen wird die ursprüngliche Datei, die Bedürfnisse zu sortieren.
So sortieren Sie textfile.txt und erstellen eine neue Ausgabedatei für den Inhalt:
sort -o sorted.txt textfile.txt
Ausgabe:
Mehrere Dateien sortieren
Um mehr als eine Datei auf einmal zu sortieren, übergeben Sie einfach die Dateinamen getrennt durch das Leerzeichen .
sort textfile.txt textfile2.txt
Ausgabe:
Beachten Sie, dass sort die Ausgabe der Dateien zusammenführt und sie zusammen im Terminal anzeigt.
Datei umkehren
Wenn Sie die Anordnung des Inhalts umkehren möchten, verwenden Sie das Flag -r mit dem Standardbefehl. Das -r im folgenden Befehl steht für Reverse .
sort -r textfile.txt
Ausgabe:
Eine Datei numerisch sortieren
Um eine Datei mit numerischen Daten zu sortieren, verwenden Sie das Flag -n mit dem Befehl. Standardmäßig ordnet sort die Daten in aufsteigender Reihenfolge an.
sort -n numbers.txt
Ausgabe:
Wenn Sie in absteigender Reihenfolge sortieren möchten, kehren Sie die Anordnung um, indem Sie die Option -r zusammen mit dem Flag -n im Befehl verwenden.
sort -rn numbers.txt
Ausgabe:
Groß-/Kleinschreibung beim Sortieren ignorieren
Standardmäßig berücksichtigt die Sortierung die Groß-/Kleinschreibung des Inhalts. Zeilen, die mit Kleinbuchstaben beginnen, gehen Zeilen voraus, die mit der Großbuchstabenversion desselben Zeichens beginnen. Zum Beispiel wird "er ist ein Junge" vor "Er ist ein Junge" stehen.
Wenn die Sortierung die Groß-/Kleinschreibung ignorieren soll, geben Sie das Flag -f oder –ignore-case wie folgt an:
sort -f textfile.txt
sort --ignore-case textfile.txt
Ausgabe:
Sortieren einer Datei nach Monat
Mit dem Flag -M können Sie die Reihenfolge des Inhalts einer Datei basierend auf den Monatsnamen ändern.
sort -M textfile2.txt
Ausgabe:
Führende Leerzeichen ignorieren
Manchmal kann die Datei, die Sie sortieren möchten, Leerzeichen oder Tabulatoren enthalten. Um solche Leerzeichen zu ignorieren, verwenden Sie das Flag -b .
sort -b fileblanks.txt
Ausgabe:
Sortieren einer Datei nach einer Spalte
Wenn Sie eine Textdatei mit Daten haben, die in separaten Spalten angeordnet sind, können Sie die Datei nach dem Inhalt einer Spalte sortieren. Alles, was Sie tun müssen, ist die Spaltennummer zusammen mit dem Flag -k zu übergeben .
Stellen Sie sich eine Textdatei vor, die Dateiinformationen mit verschiedenen Spalten enthält. So sortieren Sie eine Datei namens output.txt nach der achten Spalte:
sort -k8 -rn output.txt
Ausgabe:
Rohrsortierung mit anderen Befehlen
Sie können sort mit anderen Linux-Befehlen sogar verwenden, um die Anordnung der Ausgabe zu ändern. Um beispielsweise die Ausgabe des ls-Befehls nach der Größe der Dateien zu sortieren:
ls -la | sort -k5 -rn
Ausgabe:
Eine Datei zufällig sortieren
Sie können das Flag -R verwenden, wenn Sie die Reihenfolge der Zeilen in einer Textdatei zufällig ändern möchten. Betrachten Sie die Datei textfile.txt :
sort -R textfile.txt
Ausgabe:
Versionsnummern in einer Datei sortieren
Wenn Sie eine Textdatei mit Versionsinformationen zu einem Paket haben, können Sie deren Inhalt mit dem Flag -V oder –version-sort sortieren .
sort -V version.txt
sort --version-sort version.txt
Ausgabe:
Überprüfen Sie, ob eine Datei sortiert ist
Das Flag -c hilft Ihnen, Dateien zu identifizieren, die bereits nach den angegebenen Optionen sortiert sind. Wenn der Inhalt der Datei richtig sortiert ist, zeigt sort keine Ausgabe an.
Um zu prüfen, ob die Datei textfile.txt sortiert ist:
sort -c textfile.txt
Lassen Sie uns nun die Datei sortieren und ihre Ausgabe in einer neuen Datei namens sorted.txt speichern . Bei der Ausgabe des folgenden Befehls:
sort -c sorted.txt
Ausgabe:
Sie können auch verschiedene Flags angeben, um die Anordnung der Datei nach bestimmten Kriterien zu überprüfen. Um beispielsweise zu überprüfen, ob die Datei numbers.txt in absteigender Reihenfolge sortiert ist:
sort -c -rn numbers.txt
Sie sehen eine Ausgabe, die besagt, dass die Datei nicht richtig sortiert ist. Lassen Sie uns die Datei sortieren und prüfen, ob die neue Datei den Test besteht.
sort -o sorted.txt -rn numbers.txt
sort -c -rn sorted.txt
Ausgabe:
Sortieren Sie die Datei und entfernen Sie Duplikate
Die Datei, mit der Sie arbeiten, enthält möglicherweise doppelte Daten. Obwohl Sie den Befehl uniq verwenden können , um solche Informationen aus der Datei zu entfernen, kann sort diese Aufgabe für Sie übernehmen. Das Flag -u oder –unique ist das, was Sie brauchen.
Betrachten Sie eine Datei namens Duplicate.txt :
So sortieren Sie die Datei und entfernen die wiederholten Daten:
sort -u duplicate.txt
Ausgabe:
Sie können sehen, dass sort bei Verwendung des Flags -u nur einzelne Zeilen anzeigt und diese nach den angegebenen Kriterien anordnet.
Arbeiten mit Textdateien unter Linux
Obwohl die Leistungsfähigkeit von Befehlszeilen-Texteditoren unübertroffen ist, können Sie sich dennoch für einen grafischen Editor wie gedit entscheiden, um den Inhalt einer Textdatei einfach zu ändern. Außerdem ist es eine bessere Wahl für diejenigen, die neu bei Linux sind und nicht mit dem Terminal umgehen können.
Der beste Weg, um mit der Befehlszeile und Linux im Allgemeinen zu beginnen, besteht darin, zuerst die grundlegenden Befehle zu üben. Nachdem Sie die grundlegenden Dienstprogramme behandelt haben, ist es wahrscheinlich der beste Ansatz, schrittweise zu komplexeren Befehlen zu gelangen.