
Der Cut-Befehl unter Linux ist ein wichtiges Dienstprogramm für die Textverarbeitung. Er extrahiert bestimmte Segmente aus jeder Zeile einer Datei oder aus einer Pipe-Eingabe. Der Befehl verändert die Originaldatei nicht, sondern liest die Daten und zeigt die gewünschten Abschnitte in der Standardausgabe an. In dieser Anleitung erläutern wir die Funktionsweise des Cut-Befehls unter Linux und demonstrieren seine Anwendung anhand praktischer Beispiele.
Erkunden des Cut-Befehls
Der cut
Befehl ist für alle, die mit strukturiertem Text arbeiten, unverzichtbar und ermöglicht die effektive Datenmanipulation und -extraktion in Unix-ähnlichen Umgebungen. Durch das Extrahieren von Zeilenabschnitten anhand von Byte- und Zeichenpositionen, Trennzeichen oder Feldern erweist sich cut als unverzichtbar für das Filtern und Organisieren von Daten in Shell-Skripten und Kommandozeilenoperationen. Seine Anwendungen reichen vom Abrufen bestimmter Spalten aus CSV-Dateien über das Entfernen unnötiger Zeichen bis hin zur Protokollanalyse. Obwohl cut oft direkt mit Dateien verwendet wird, interagiert es in einer Pipeline auch nahtlos mit der Ausgabe anderer Befehle.
Grundlegende Syntax des Cut-Befehls
Der Befehl „cut“ ist unkompliziert und verwendet Optionen gefolgt von einem Dateinamen. Die Syntax lautet wie folgt:
cut [OPTIONS] [FILE]
In dieser Struktur bestimmen OPTIONEN die Funktionsweise des Cut-Befehls. Sie können unter anderem ein Feldtrennzeichen (z. B.ein Komma) auswählen, bestimmte Felder auswählen, Bereiche festlegen und Zeilen ohne Trennzeichen ausschließen. Wenn keine Datei angegeben ist, liest Cut die Daten von der Standardeingabe. Sie können auch mehrere Dateien angeben, die dann als kombinierte Einheit verarbeitet werden.
Häufig verwendete Optionen
Der Befehl „Ausschneiden“ bietet verschiedene Optionen, um exakte Textsegmente zu extrahieren. Hier sind einige der am häufigsten verwendeten:
- -f oder –fields=LIST : Ermöglicht die Auswahl bestimmter Felder basierend auf einem festgelegten Trennzeichen.
- -b oder –bytes=LIST : Extrahiert angegebene Bytes aus jeder Zeile.
- -c oder –characters=LIST : Ruft bestimmte Zeichen aus jeder Zeile ab.
- -d oder –delimiter : Legt anstelle des Standard-Tabulators ein benutzerdefiniertes Trennzeichen fest.
- –complement : Gibt alles außer den angegebenen Feldern, Bytes oder Zeichen aus.
- -s oder –only-delimited : Überspringt Zeilen ohne Trennzeichen; solche Zeilen werden standardmäßig eingeschlossen.
- –output-delimiter : Ermöglicht die Auswahl eines anderen Trennzeichens für die Ausgabe im Gegensatz zum Eingabetrennzeichen.
Die Optionen -f
, -b
, und -c
verwenden eine LISTE, um zu definieren, was extrahiert werden soll. Sie können Folgendes angeben:
- Eine einzelne Zahl wie 2.
- Mehrere durch Kommas getrennte Zahlen, z. B.1, 3, 5.
- Ein Bereich wie 2–4 (um Werte von 2 bis 4 zu extrahieren).
-
N-
um die Extraktion von Position N bis zum Ende anzuzeigen. -
-M
um die Extraktion vom Start bis zur Position M anzuzeigen.
Verwenden des Cut-Befehls unter Linux
Um die Funktionsweise des Cut-Befehls zu veranschaulichen, führen wir einige praktische Beispiele aus. Erstellen wir zunächst mit dem Echo-Befehl eine Beispieldatei namens „mte.csv“:
echo -e "empID, empName, empDesig\n101, Anees, Author\n102, Asghar, Manager\n103, Damian, CEO" > mte.csv

Als Nächstes können wir den Inhalt der Datei mit dem Befehl „cat“ überprüfen:
cat mte.csv

Es ist wichtig zu erwähnen, dass der Cut-Befehl lediglich die angegebene Ausgabe präsentiert, ohne die Datei selbst zu ändern.
Extrahieren von Daten nach Zeichen
Um Zeichen nach Position zu extrahieren, verwenden Sie die -c
Option mit dem Befehl „Ausschneiden“:
cut -c 1, 8 mte.csv
Dieser Befehl extrahiert das erste und das achte Zeichen aus jeder Zeile:

Um Zeichen innerhalb eines angegebenen Bereichs zu extrahieren, wenden Sie den folgenden Befehl an:
cut -c 1-8 mte.csv
Dadurch werden Zeichen aus den Positionen 1 bis 8 in jeder Zeile extrahiert:

Extrahieren nach Byte
Um bestimmte Bytes zu extrahieren, verwenden Sie die -b
Option mit dem Cut-Befehl:
cut -b 1-3 mte.csv
Dieser Befehl extrahiert die ersten drei Bytes aus jeder Zeile in der Datei mte.csv
:

Extrahieren nach Feld (Spalte)
Um ein ganzes Feld aus einer Datei zu extrahieren, verwenden Sie den Befehl „Ausschneiden“ mit den Optionen -f
und :-d
cut -d', ' -f2 mte.csv
In diesem Befehl -d', '
wird ein Komma als Trennzeichen verwendet, während -f2
das Zeichen „cut“ angibt, dass das zweite Feld aus jeder Zeile extrahiert werden soll:

Implementieren benutzerdefinierter Trennzeichen in cut
Obwohl cut standardmäßig einen Tabulator als Trennzeichen verwendet, geben Sie -d
mit das richtige Zeichen an, wenn Felder durch ein anderes Zeichen getrennt sind. Um beispielsweise das fünfte Wort aus einem durch Leerzeichen getrennten Satz zu extrahieren, können Sie Folgendes verwenden:
echo "Hey! Geeks Welcome to Maketecheasier.com" | cut -d ' ' -f 5

Ausschließen bestimmter Felder während der Extraktion
Sie können beim Extrahieren von Text aus einer Datei bestimmte Felder auslassen, indem Sie die --complement
Option mit dem Befehl cut verwenden. Diese Option gibt an, dass cut alle Felder außer den angegebenen ausgibt:
cut -d', ' -f1 mte.csv --complement
Dieser Befehl überspringt die erste Spalte und gibt den Rest des Inhalts zurück:

Ändern des Standard-Ausgabetrennzeichens
Beim Extrahieren von Feldern behält der Befehl „cut“ standardmäßig das Eingabetrennzeichen in der Ausgabe bei. Sie können das Ausgabetrennzeichen jedoch mit der folgenden --output-delimiter
Option ändern:
cut -d', ' -f1-3 --output-delimiter='-' mte.csv
Dieser Befehl verwendet einen Bindestrich als Trennzeichen in der Ausgabe:

Kombinieren von „cut“ mit anderen Linux-Befehlen
Der Cut-Befehl kann auch in Verbindung mit anderen Linux-Befehlen mit dem Pipeline-Symbol | verwendet werden. Beispielsweise extrahiert der folgende Befehl die ersten fünf Zeichen aus jeder Ausgabezeile des who
Befehls:
who | cut -c 1-5

In einem anderen Beispiel können Sie den Befehl „cut“ zusammen mit „head“ verwenden, um die ersten beiden Zeilen von „mte.csv“ anzuzeigen und dabei nur die Felder „empName“ und „empDesig“ zu extrahieren:
head -n 2 mte.csv | cut -d ', ' -f2, 3

Navigieren in unregelmäßigen Datenformaten mit dem Linux-Befehl „cut“
Der Befehl „cut“ eignet sich hervorragend für die Verarbeitung gut formatierter Daten mit einheitlichen Trennzeichen (wie Kommas oder Tabulatoren).Bei Dateien mit inkonsistenten Abständen oder gemischten Trennzeichen kann die alleinige Anwendung von „cut“ jedoch zu unbefriedigenden Ergebnissen führen. Daher ist es oft sinnvoll, die Daten vorab mit Befehlen wie tr
oder zu bereinigen sed
, um sicherzustellen, dass „cut“ die richtigen Teile effektiv extrahiert.
Überschüssigen Speicherplatz verwalten
Stellen Sie sich eine Datei mit dem Namen „mteData.txt“ vor, in der die Felder durch unterschiedliche Leerzeichen getrennt sind:
cat mteData.txt

Da „cut“ ein einzelnes Trennzeichen erwartet, verwenden Sie „use“, tr
um den Abstand vor der Anwendung von „cut“ zu normalisieren:
cat mteData.txt | tr -s ' ' | cut -d ' ' -f1-2
Dieser Befehl verarbeitet „mteData.txt“, ersetzt mehrere Leerzeichen durch ein einzelnes mithilfe von tr
und extrahiert dann die ersten beiden Felder:

Verwalten gemischter Trennzeichen
Wenn eine Datei eine Kombination aus Leerzeichen und Kommas enthält, normalisieren Sie das Format mit sed
. Beispielsweise enthält eine Datei mit dem Namen „mteData1.txt“:
cat mteData1.txt

Verwenden Sie es sed
mit „cut“, um alle Leerzeichen in Kommas umzuwandeln und dann das erste und dritte Feld zu extrahieren:
sed 's/ /, /g' mteData1.txt | cut -d ', ' -f1, 3

Abschluss
In diesem Artikel haben wir die Funktionen des Linux-Befehls „cut“ vorgestellt, einem wichtigen Tool zum Extrahieren von Daten aus Dateien oder Pipe-Eingaben. Dank seiner einfachen Syntax können Sie mühelos Zeichen, Bytes oder Felder basierend auf einem festgelegten Trennzeichen extrahieren. Darüber hinaus haben wir gezeigt, wie Sie den Befehl „cut“ mit anderen Dienstprogrammen wie tr
, sed
, und kombinieren können head
, um unreine Daten zu verwalten und eine effizientere Ausgabe zu erzielen. Ob Sie CSV-Dateien verarbeiten, Protokolle analysieren oder Daten bereinigen – der Befehl „cut“ ist ein unverzichtbares Werkzeug für die Textverarbeitung in Unix-ähnlichen Umgebungen.
Häufig gestellte Fragen
1. Was ist der Hauptzweck des Cut-Befehls in Linux?
Der Cut-Befehl unter Linux dient hauptsächlich zum Extrahieren bestimmter Textabschnitte aus Dateien oder der Ausgabe anderer Befehle. Er ermöglicht Benutzern die effektive Bearbeitung und Formatierung von Daten anhand von Trennzeichen, Byte- und Zeichenpositionen.
2. Kann ich den Cut-Befehl mit anderen Linux-Befehlen kombinieren?
Ja! Der Cut-Befehl lässt sich mithilfe des Pipeline-Symbols (|) nahtlos in andere Linux-Befehle integrieren. Dies ermöglicht eine leistungsstarke Datenverarbeitung und ermöglicht das Filtern und Formatieren der Ausgaben verschiedener Befehle.
3. Wie kann ich bei Verwendung des Befehls „Ausschneiden“ ein benutzerdefiniertes Trennzeichen angeben?
Sie können ein benutzerdefiniertes Trennzeichen angeben, indem Sie die -d
Option gefolgt vom gewünschten Trennzeichen verwenden. Um beispielsweise ein Komma als Trennzeichen zu verwenden, verwenden Sie -d', '
.
Schreibe einen Kommentar