cut (Unix)

Unix-Kommando

cut ist ein Unix-Kommando zur spaltenweisen Extraktion von zeilenweise eingelesenem Text.

Zeilensegmente können byte-(-b), zeichen-(-c) oder felderweise (-f) extrahiert werden, wobei mittels -d ein Trennzeichen spezifiziert werden kann. Für Bereichs-Spezifizierungen stehen die Optionen N, N-M, N- (N bis Zeilenende), oder -M (Zeilenanfang bis M) zur Verfügung.

Die erste bekannte, öffentliche Version von cut war 1982 Bestandteil von Unix System III[1]. In den meisten Linux-Distributionen ist heute die Implementation des Pakets Gnu Core Utilities enthalten, diese wurde von David M. Ihnat, David MacKenzie, und Jim Meyering erstellt[2].

BeispieleBearbeiten

Eine Datei a.tst enthalte folgende Zeilen:

 foo:bar:baz:qux:quux
 one:two:three:four:five:six:seven
 alpha:beta:gamma:delta:epsilon:zeta:eta:teta:iota:kappa:lambda:mu

Mit

 % cut -c 4-10 a.tst

lassen sich dann zum Beispiel die 4.–10. Zeichen jeder Zeile ausgeben:

 :bar:ba
 :two:th
 ha:beta

während

 % cut -d : -f 5- a.tst

die Zeilen in Felder einteilt, die durch Doppelpunkte separiert sind und unterschiedlich viele Zeichen enthalten können. Jeweils vom fünften solchen Feld an wird dann der Restinhalt der Zeile ausgegeben:

 quux
 five:six:seven
 epsilon:zeta:eta:teta:iota:kappa:lambda:mu .

WeblinksBearbeiten

EinzelnachweiseBearbeiten

  1. Markus Schnalke: Cut out selected fields of each line of a file. In: freiesmagazin. (marmaro.de [PDF]).
  2. cut(1): remove sections from each line of files - Linux man page. Abgerufen am 28. März 2020.