Cut (Unix)

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].

Beispiele

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
  • cut: cut out selected fields of each line of a file – Open Group Base Specification
  • cut(1): select portions of each line of a file – OpenBSD General Commands Manual
  • cut(1): Teile jeder Zeile aus Dateien entfernen – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite
  • Cut out selected fields of each line of a file Betrachtung von cut und dessen historischem Hintergrund

Einzelnachweise

  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. 
Unix-Befehle der GNU Core Utilities
Dateien

chgrp | chown | chmod | cp | dd | df | dir | dircolors | install | ln | ls | mkdir | mkfifo | mknod | mv | rm | rmdir | shred | sync | touch | vdir

Text

awk | cat | cksum | comm | csplit | cut | expand | fmt | fold | head | join | md5sum | nl | od | paste | ptx | pr | sha1sum | sed | sort | split | sum | tac | tail | tr | tsort | unexpand | uniq | wc

Shell

basename | chroot | date | dirname | du | echo | env | expr | factor | false | groups | hostid | id | link | logname | nice | nohup | pathchk | pinky | printenv | printf | pwd | readlink | seq | sleep | stat | stty | tee | test | true | tty | uname | unlink | users | who | whoami | yes