Befehl "cut"
Zweck
Mit diesem Befehl können die Zeilen einer Datei geteilt werden.
Syntax
Ausschneiden { -b Liste [ -n ] | -c Liste | -f Liste [ -s ] [ -d Zeichen ] } [ Datei ... ]
Beschreibung
Der Befehl cut schneidet Bytes, Zeichen oder Felder aus jeder Zeile einer Datei aus und schreibt diese Bytes, Zeichen oder Felder in die Standardausgabe. Wenn Sie den Parameter Datei nicht angeben, liest der Befehl cut die Standardeingabe.
Sie müssen entweder -b, -c, oder das Flag -f . Der Parameter Liste ist eine durch Kommas, Leerzeichen oder Bindestriche getrennte Liste ganzer Zahlen (in aufsteigender Reihenfolge). Der Bindestrich wird zur Angabe von Bereichen verwendet. Die folgenden Beispiele für den Parameter Liste können sich auf Bytes, Zeichen oder Felder beziehen:
1,4,7
1-3,8
-5,10
3-Erläuterungen:-5ist eine Kurzform für die erste bis fünfte und3-ist eine Kurzform für die dritte bis letzte.
Wenn Sie den Befehl cut für Felder verwenden, kann die Länge der mit dem Parameter Liste angegebenen Felder von Feld zu Feld und von Zeile zu Zeile variieren. Die Position des Feldbegrenzungszeichens, z. B. des Tabulatorzeichens, bestimmt die Länge eines Felds.
Sie können auch mit dem Befehl grep eine Datei zeilenbasiert aufteilen und die resultierenden Dateien dann mit dem Befehl paste wieder zusammenfügen. Verwenden Sie die Befehle cut und paste, um die Reihenfolge von Spalten in einer Datei zu ändern.
Flags
| Element | Beschreibung |
|---|---|
| -b Liste | Gibt Bytepositionen an. Diese Bytepositionen ignorieren Mehrbytezeichenbegrenzungen, sofern das Flag -n nicht ebenfalls angegeben ist. |
| -c Liste | Gibt Zeichenpositionen an. Wenn Sie beispielsweise-c 1-72,Der Befehl cut gibt die ersten 72 Zeichen in jeder Zeile der Datei aus. |
| -d Zeichen | Verwendet das mit der Variablen Zeichen angegebene Zeichen als Feldbegrenzer, wenn Sie das Flag -f angeben. Zeichen, die in der Shell eine besondere Bedeutung haben, wie z. B. das Leerzeichen, müssen in Anführungszeichen eingeschlossen werden. |
| -f Liste | Gibt eine Liste von Feldern an, von denen angenommen wird, dass sie in der Datei durch einen Begrenzer voneinander getrennt sind, das standardmäßig das Tabulatorzeichen ist. Wenn Sie beispielsweise-f 1,7,Der Befehl cut gibt nur das erste und siebte Feld jeder Zeile aus. Wenn eine Zeile keine Feldbegrenzer enthält, übergibt der Befehl cut sie intakt (nützlich für Tabellenunterüberschriften), sofern Sie nicht das Flag -s angeben. |
| -N | Unterdrückt die Teilung von Mehrbytezeichen. Nur mit dem Flag -b verwenden. Wenn das letzte Byte eines Zeichens in den mit der Variablen Liste des Flags -b- angegebenen Bereichs fällt, wird das Zeichen ausgegeben, andernfalls wird das Zeichen ausgeschlossen. |
| -s | Unterdrückt Zeilen, die keine Begrenzungszeichen enthalten. Nur mit dem Flag -f verwenden. |
Exitstatus
Dieser Befehl gibt die folgenden Exitwerte zurück:
| Element | Beschreibung |
|---|---|
| 0 | Alle Eingabedateien wurden erfolgreich ausgegeben. |
| >0 | Es ist ein Fehler aufgetreten. |
Beispiele
- Geben Sie Folgendes ein, um mehrere Felder jeder Zeile einer Datei anzuzeigen:cut -f 1,5 -d : /etc/passwdDieser Befehl zeigt die Felder für den Anmeldenamen und den vollständigen Benutzernamen aus der Datei mit den Systemkennwörtern an. Dies sind die ersten und fünften Felder (-f 1,5) getrennt durch Doppelpunkte (-d :).
Angenommen, die Datei /etc/passwd enthält den folgenden Inhalt:
Der Befehl cut erzeugt die folgende Ausgabe:su:*:0:0:User with special privileges:/:/usr/bin/sh daemon:*:1:1::/etc: bin:*:2:2::/usr/bin: sys:*:3:3::/usr/src: adm:*:4:4:System Administrator:/var/adm:/usr/bin/sh pierre:*:200:200:Pierre Harper:/home/pierre:/usr/bin/sh joan:*:202:200:Joan Brown:/home/joan:/usr/bin/shsu:User with special privileges daemon: bin: sys: adm:System Administrator pierre:Pierre Harper joan:Joan Brown - Geben Sie Folgendes ein, um Felder in einer durch Leerzeichen getrennten Liste anzuzeigen:
Der Befehl cut erzeugt die folgende Ausgabe:cut -f "1 2 3" -d : /etc/passwdsu:*:0 daemon:*:1 bin:*:2 sys:*:3 adm:*:4 pierre:*:200 joan:*:202
Dateien
| Element | Beschreibung |
|---|---|
| /usr/bin/cut | Enthält den Befehl cut. |