GeeksforGeeks (Deutsch)

Der Befehl cut unter UNIX ist ein Befehl zum Ausschneiden der Abschnitte aus jeder Dateizeile und zum Schreiben des Ergebnisses in die Standardausgabe. Es kann verwendet werden, um Teile einer Linie nach Byte-Position, Zeichen und Feld zu schneiden. Grundsätzlich schneidet der Befehl cut eine Linie und extrahiert den Text. Es ist notwendig, die Option mit dem Befehl anzugeben, da sonst ein Fehler auftritt. Wenn mehr als ein Dateiname angegeben wird, wird den Daten aus jeder Datei nicht der Dateiname vorangestellt.

Syntax:

cut OPTION... ...

Betrachten wir zwei Dateien mit dem Namen state.txt und capital.txt enthält 5 Namen der indischen Bundesstaaten und Großbuchstaben.

$ cat state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

Ohne Angabe einer Option wird ein Fehler angezeigt.

$ cut state.txtcut: you must specify a list of bytes, characters, or fieldsTry "cut --help" for more information.

Optionen und ihre Beschreibung mit Beispielen:

1. -b (Byte): Um die spezifischen Bytes zu extrahieren, müssen Sie der Option -b mit der durch Komma getrennten Liste der Bytenummern folgen. Der Bytebereich kann auch mit dem Bindestrich (-) angegeben werden. Es ist notwendig, eine Liste von Bytenummern anzugeben, da sonst ein Fehler auftritt. Tabulatoren und Leerzeichen werden wie ein Zeichen von 1 Byte behandelt.

Es wird eine spezielle Form zum Auswählen von Bytes vom Anfang bis zum Ende der Zeile verwendet:

In this, 1- indicate from 1st byte to end byte of a line$ cut -b 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhIn this, -3 indicate from 1st byte to 3rd byte of a line$ cut -b -3 state.txtAndAruAssBihChh

2. -c (Spalte): Um nach Zeichen zu schneiden, verwenden Sie die Option -c. Dadurch werden die Zeichen ausgewählt, die der Option -c zugewiesen wurden. Dies kann eine Liste von durch Kommas getrennten Zahlen oder ein durch Bindestrich (-) getrennter Zahlenbereich sein. Tabulatoren und Backspaces werden als Zeichen behandelt. Es ist erforderlich, eine Liste von Zeichennummern anzugeben, da sonst bei dieser Option ein Fehler auftritt.

Syntax:

$cut -c filename

Hier bezeichnet k die Die Startposition des Zeichens und n bezeichnen die Endposition des Zeichens in jeder Zeile, wenn k und n durch „-“ getrennt sind, andernfalls sind sie nur die Position des Zeichens in jeder Zeile aus der als Eingabe genommenen Datei.

$ cut -c 2,5,7 state.txtnrrahsmirhti

Der obige Schnittbefehl druckt das zweite, fünfte und siebte Zeichen aus jeder Zeile der Datei.

$ cut -c 1-7 state.txtAndhraArunachAssamBiharChhatti

Der Befehl oben schneidet die ersten sieben Zeichen jeder Zeile aus der Datei.

Ausschneiden verwendet ein spezielles Formular zum Auswählen von Zeichen vom Anfang bis zum Ende der Zeile:

$ cut -c 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhAbove command prints starting from first character to end. Here in command only startingposition is specified and the ending position is omitted.$ cut -c -5 state.txtAndhrArunaAssamBiharChhatAbove command prints starting position to the fifth character. Here the starting positionis omitted and the ending position is specified.

3. -f (Feld): Die Option -c ist nützlich für Zeilen mit fester Länge. Die meisten Unix-Dateien haben keine festen Zeilen. Längenlinien. Um die nützlichen Informationen zu extrahieren, müssen Sie nach Feldern anstatt nach Spalten schneiden. Liste der Feldnummernangaben fied muss durch Komma getrennt werden. Bereiche werden nicht mit der Option -f beschrieben. cut verwendet tab als Standardfeldtrennzeichen, kann aber auch mit anderen Trennzeichen arbeiten, indem die Option -d verwendet wird.
Hinweis: Leerzeichen werden in UNIX nicht als Trennzeichen betrachtet.

Syntax:

$cut -d "delimiter" -f (field number) file.txt

Wie in der Datei state.txt werden Felder durch Leerzeichen getrennt, wenn die Option -d nicht verwendet wird, wird die gesamte Zeile gedruckt:

$ cut -f 1 state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

Wenn die Option -d verwendet wird, wird Leerzeichen als Feldtrennzeichen oder Trennzeichen betrachtet:

$ cut -d " " -f 1 state.txtAndhraArunachalAssamBiharChhattisgarh
Command prints field from first to fourth of each line from the file.Command:$ cut -d " " -f 1-4 state.txtOutput:Andhra PradeshArunachal PradeshAssamBiharChhattisgarh

4. –Komplement: Wie der Name schon sagt, ergänzt es die Ausgabe. Diese Option kann in Kombination mit anderen Optionen entweder mit -f oder mit -c verwendet werden.

5. –Ausgabetrennzeichen: Standardmäßig entspricht das Ausgabetrennzeichen dem Eingabetrennzeichen, das wir im Schnitt mit der Option -d angeben. Verwenden Sie zum Ändern des Ausgabetrennzeichens die Option –output-delimiter = ”delimiter”.

$ cut -d " " -f 1,2 state.txt --output-delimiter="%"Andhra%PradeshArunachal%PradeshAssamBiharChhattisgarh

Hier ändert der Befehl cut den Begrenzer (%) in der Standardausgabe zwischen dem Felder, die mit der Option -f angegeben werden.

6. –Version: Mit dieser Option wird die Version des Schnitts angezeigt, die derzeit auf Ihrem System ausgeführt wird.

$ cut --versioncut (GNU coreutils) 8.26Packaged by Cygwin (8.26-2)Copyright (C) 2016 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later .This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Written by David M. Ihnat, David MacKenzie, and Jim Meyering.

Anwendungen des Befehls cut

1. So verwenden Sie tail mit Pipes (|): Der Befehl cut kann mit vielen anderen Befehlen des Unix gepiped werden. Im folgenden Beispiel wird die Ausgabe des Befehls cat als Eingabe für den Befehl cut mit der Option -f angegeben, um die aus der Datei state.txt stammenden Statusnamen in umgekehrter Reihenfolge zu sortieren.

$ cat state.txt | cut -d " " -f 1 | sort -rChhattisgarhBiharAssamArunachalAndhra

Es kann auch mit einem oder mehreren Filtern für die zusätzliche Verarbeitung geleitet werden. Wie im folgenden Beispiel verwenden wir den Befehl cat, head und cut, dessen Ausgabe mithilfe der Direktive (>) im Dateinamen list.txt gespeichert wird.

$ cat state.txt | head -n 3 | cut -d " " -f 1 > list.txt$ cat list.txtAndhraArunachalAssam

Vielen Dank an Saloni Gupta für die Bereitstellung weiterer Beispiele.

Artikel-Tags:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.