Linux / Befehl cut: Zeichen und Felder extrahieren
cut wählt bestimmte Bytes, Zeichen oder durch Trennzeichen getrennte Felder aus jeder Eingabezeile aus und gibt sie aus. Es ist praktisch für einfache Spaltenextraktionen, aber kein komplexes CSV-Analysewerkzeug.
Im Feldmodus verwendet -f standardmäßig einen Tabulator als Trennzeichen. Um einen Doppelpunkt oder ein Komma zu verwenden, geben Sie auch -d an. Wählen Sie -c oder -b unter Berücksichtigung der Implementierung und der Zeichencodierung.
Grundlegende Syntax
cut -d 'delimiter' -f field_number [file...]
Installierte Implementierungen und Optionen können je nach Distribution variieren. Prüfen Sie die Beschreibung für Ihr System mit man cut.
Beispiele
Extrahieren von durch Doppelpunkte getrennten Feldern
Extrahieren Sie das erste Feld aus der Systemkontenliste.
cut -d ':' -f 1 /etc/passwd
Auswahl mehrerer Felder
Mit Kommas angegebene Felder werden in der Reihenfolge der ursprünglichen Eingabe ausgegeben.
cut -d ':' -f 1,7 /etc/passwd
Zeichenbereich extrahieren
Verwendet, wenn man den Anfang jeder Zeile betrachtet.
cut -c 1-8 sample.txt
Ergebnisse der Feldextraktion unter Verwendung eines Trennzeichens
Dies ist ein Beispiel dafür, nur das erste Feld aus zwei durch einen Doppelpunkt getrennten Zeilen zu extrahieren. -d ist das Trennzeichen, und -f ist die auszuwählende Feldnummer.
printf 'alpha:100\nbeta:200\n' | cut -d: -f1
Beispielausgabe:
alpha beta
cut -d ' ' -f2 kann Text mit mehreren aufeinanderfolgenden Leerzeichen nicht zuverlässig spalten. Für solche Daten ist awk geeignet. Formate, bei denen ein Trennzeichen in Anführungszeichen vorkommen kann, wie CSV, können nicht genau allein von cut verarbeitet werden, daher sollte ein spezieller CSV-Parser verwendet werden.
Hauptoptionen und Format
| Optionen/Format | Beschreibung |
|---|---|
-d delimiter |
Geben Sie das Feldtrennzeichenzeichen an. |
-f list |
Wählt die Feldnummer oder den Bereich zur Ausgabe aus. |
-c list |
Wählt Zeichenpositionen aus. |
-b list |
Wählt Byte-Positionen aus. |
-s |
Druckt keine Zeilen ohne Feldtrennzeichen. |
Vorsichtsmaßnahmen bei der Verwendung
cut -d ',' versteht keine Kommas innerhalb von Anführungszeichen oder mehrzeilige CSV-Felder. Für solche Daten verwenden Sie einen CSV-spezifischen Parser. Zeilen ohne Trennzeichen werden standardmäßig unverändert ausgegeben, daher fügen Sie bei Bedarf -s hinzu.
Häufig gestellte Fragen
Können auch mehrere durch Leerzeichen getrennte Spalten mit cut extrahiert werden?
Wenn die Breite aufeinanderfolgender Leerzeichen inkonsistent ist, können die Feldnummern nicht korrekt ausgerichtet sein. Solche Eingaben werden normalerweise besser von awk verarbeitet.
Offizielle Dokumentation
Sie können das genaue Verhalten der Optionen und Implementierungsunterschiede in der offiziellen Cut-Dokumentation nachprüfen.




