cut
100%

Text-Fu · Lektion 6

cut

Lerne, mit cut Zeichenpositionen oder getrennte Felder aus jeder Zeile auszuwählen.

Der Befehl cut wählt bestimmte Zeichenpositionen oder Felder aus jeder Eingabezeile aus. Er eignet sich am besten für einheitlich strukturierte Texte, deren Trennzeichen und Feldpositionen bekannt sind.

Erstelle für die Beispiele eine kleine tabulatorgetrennte Datei. printf interpretiert \t als Tabulator und \n als Zeilenumbruch:

$ printf 'name\trole\nalice\tadmin\nbob\tviewer\n' > team.tsv

Zeichenpositionen auswählen

Mit -c LIST wählst du Positionen aus jeder Zeile aus. Die Zählung beginnt bei 1:

$ cut -c 1 team.tsv
n
a
b

Die Liste kann einzelne Positionen und Bereiche enthalten:

$ cut -c 1-4 team.tsv
name
alic
bob
$ cut -c 1,3 team.tsv
nm
ai
bb

Leerzeichen, Tabulatoren und Satzzeichen belegen ebenfalls Positionen. cut verarbeitet jede Zeile unabhängig.

Welcher Befehl gibt das erste Zeichen jeder Zeile von names.txt aus?

Tabulatorgetrennte Felder auswählen

Mit -f LIST wählst du Felder aus. Das standardmäßige Trennzeichen ist ein Tabulator:

$ cut -f 2 team.tsv
role
admin
viewer

Wie bei der Zeichenauswahl kann eine Liste Werte wie 1, 1,3, 2-4, -3 oder 2- enthalten.

Welcher Befehl gibt das zweite tabulatorgetrennte Feld jeder Zeile von team.tsv aus?

Ein eigenes Trennzeichen wählen

Verwende -d CHARACTER zusammen mit -f, wenn die Felder nicht durch Tabulatoren getrennt sind. Dieses Beispiel erzeugt semikolongetrennte Daten:

$ printf 'alice;admin\nbob;viewer\n' > team.txt
$ cut -d ';' -f 1 team.txt
alice
bob

Das Trennzeichen dieser Form besteht aus einem Zeichen. Setze ; in Anführungszeichen, weil ein ungeschütztes Semikolon in der Shell eine Steuerbedeutung besitzt.

Welcher Befehl gibt das zweite semikolongetrennte Feld von team.txt aus?

Zeilen ohne Trennzeichen behandeln

Im Feldmodus gibt cut eine Zeile normalerweise unverändert aus, wenn sie kein Trennzeichen enthält. Mit -s unterdrückst du solche Zeilen:

$ printf 'alice;admin\nheader\nbob;viewer\n' | cut -s -d ';' -f 2
admin
viewer

Damit wird keine allgemeine CSV-Datei ausgewertet. CSV kann geschützte Trennzeichen, eingebettete Zeilenumbrüche und Maskierungsregeln enthalten, die eine Aufteilung an einem einzelnen Zeichen nicht versteht. Verwende für solche Daten ein CSV-fähiges Werkzeug.

Was bewirkt -s bei cut -d ':' -f 1?

Von stdin lesen

Ohne benannte Datei oder mit - als Eingabeoperand liest cut von stdin. Dadurch eignet es sich gut als Pipeline-Stufe:

$ printf 'red:1\nblue:2\n' | cut -d ':' -f 1
red
blue

Woher liest cut in generate-data | cut -d ':' -f 1 seine Eingabe?

Mit diesen Übungen kannst du die Positions- und Feldauswahl praktisch trainieren:

  1. Linux cut Befehl: Textausschnitt – Extrahiere mit cut bestimmte Spalten oder Felder aus Textdateien.
  2. Sequenzsteuerung und Pipeline – Steuere Befehlsfolgen, verwende Pipelines und kombiniere Textwerkzeuge wie cut, grep, wc, sort und uniq.

Lektion abgeschlossen

Sie haben cut abgeschlossen

Du kannst nun mit cut vorhersehbare Positionen aus zeilenorientiertem Text auswählen.

  • Wähle einzelne Zeichenpositionen oder Bereiche aus.

  • Extrahiere tabulatorgetrennte Felder mit -f.

  • Gib mit -d ein einzeichenlanges Trennzeichen an.

  • Unterdrücke bei Bedarf Zeilen ohne Trennzeichen.

  • Lies strukturierte Texte aus Dateien oder stdin.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Text-Fu