ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.
Wikicut

cut

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png Der Befehl cut extrahiert spaltenweise Ausschnitte aus Textzeilen. So können bspw. aus einer Logdatei irrelevante Informationen entfernt oder CSV-Dateien bearbeitet werden.

Installation

Das Programm ist im Paket

  • coreutils

von Ubuntu enthalten und deshalb auf jedem System vorinstalliert.

Aufruf

Die allgemeine Syntax lautet [1]:

cut OPTION DATEI 

cut kennt folgende Optionen:

Optionen von cut
Option Beschreibung
-b oder --bytes Angabe der Bytepositionen
-c oder --characters Angabe der Zeichenpositionen
-d oder --delimiter Angabe der Trennzeichen (Delimiter)
-f oder --fields Angabe der zu extrahierenden Felder
-s oder --only-delimited Keine Ausgabe von Zeilen ohne Trennzeichen (Delimiter)

b, c oder f können nicht gemeinsam verwendet werden. Weitere Optionen sind der Manpage zu entnehmen.

Beispiele

In der Datei /etc/passwd stehen die Benutzernamen in der ersten Spalte. Diese Datei enthält jedoch auch weitere Informationen:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
…

Der folgende Befehl führt dazu, dass nur die Benutzernamen ausgegeben werden:

cut -d: -f1 /etc/passwd 
root
daemon
bin
…

-d: beschreibt dabei das Zeichen, das die Felder trennt. Im Beispiel ist das der Doppelpunkt. -f1 zeigt an, dass nur das erste Feld ausgegeben werden soll, in diesem Fall der Benutzername. Auch mehrere, getrennte Felder können angezeigt werden:

cut -d: -f1,7 /etc/passwd 
root:/bin/bash
daemon:/bin/sh
bin:/bin/sh
…

Der folgende Befehl zeigt mehrere Spalten einer Ausgabe an, deren Felder durch Leerzeichen getrennt sind. Konkret werden dabei Betriebssystem und Kernelversion aus der Ausgabe des Befehls uname -a extrahiert:

uname -a 
Linux nutzer-laptop 3.2.0-030200-generic #201201042035 SMP Thu Jan 5 01:36:31 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
uname -a | cut -d" " -f1,3,12 
Linux 3.2.0-030200-generic x86_64

Absolute Positionsangaben können ebenfalls verwendet werden. Im folgenden Beispiel werden aus der Liste aller laufenden Prozesse die PIDs augeschnitten. Diese stehen in den Spalten 9 bis 14:

ps huax | cut -c 9-14 

Positionsangaben müssen nicht durch vorbestimmte Endpunkte bestimmt sein:

echo "123456789" | cut -c 5- 
56789

Durch eine Kombination von Befehlen kann cut auf jedes Zeichen einer Datei zugreifen. Mit dem folgenden Befehl wird das dritte Wort der 6. Zeile der Datei datei.txt extrahiert. Es werden dabei zunächst mit head die ersten 6 Zeilen ausgeschnitten, dann mit tail die letzte dieser verbleibenden Zeilen und schließlich mit cut deren drittes Wort:

cat datei.txt | head -6l | tail -1l | cut -d" " -f3 

ubuntuusers.local › Wikicut