logo

Schnittbefehl unter Linux mit Beispielen

Der Befehl „cut“ unter Linux 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 Zeile nach Byteposition, Zeichen und Feld auszuschneiden. Der Befehl „Ausschneiden“ schneidet eine Zeile in Scheiben und extrahiert den Text. Es ist notwendig, eine Option mit einem Befehl anzugeben, andernfalls wird ein Fehler ausgegeben. Wenn mehr als ein Dateiname angegeben wird, wird den Daten jeder Datei nicht der Dateiname vorangestellt.

Inhaltsverzeichnis



Syntax des Schnittbefehls

Die grundlegende Syntax dercut>Befehl ist:

cut OPTION... [FILE]...>

Wo

`OPTION`> gibt das gewünschte Verhalten an



` FILE> `>stellt die Eingabedatei dar.

Notiz : WennFILE>ist nicht angegeben, ` cut`> liest von der Standardeingabe (stdin).

Verfügbare Optionen im Schnittbefehl

Hier ist eine Liste der am häufigsten verwendeten Optionen mit dem „ cut`> Befehl:



Möglichkeit

Beschreibung

-b, –bytes=LISTE

Wählt nur die in angegebenen Bytes ausLIST>(z.B.,-b 1-3,7>).

-c, –characters=LISTE

Wählt nur die in angegebenen Zeichen ausLIST>(z.B.,-c 1-3,7>).

-d, –delimiter=DIVIDE

VerwendetDELIM>als Feldtrennzeichen anstelle des Tabulatorzeichens.

-f, –fields=LIS

Wählt nur die in angegebenen Felder ausLIST>, getrennt durch das Trennzeichen (Standard ist Tab).

-N

Multibyte-Zeichen nicht aufteilen (keine Auswirkung, es sei denn-b>oder-c>angegeben).

-ergänzen

Kehrt die Auswahl der Felder/Zeichen um. Drucken Sie die nicht ausgewählten Felder/Zeichen.

Praktische Beispiele für den Schnittbefehl

Betrachten wir zwei Dateien mit Namen state.txt Und Hauptstadt.txt enthält jeweils 5 Namen der indischen Bundesstaaten und Hauptstädte.

$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>

Ohne Angabe einer Option wird ein Fehler angezeigt.

  $ cut state.txt   cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>

Bestimmte Bytes extrahieren (-b>) Mit dem Befehl „cut“.

-b(Byte): Um die spezifischen Bytes zu extrahieren, müssen Sie der Option -b die durch Komma getrennte Liste der Bytenummern folgen. Der Bytebereich kann auch mit dem Bindestrich (-) angegeben werden. Es ist notwendig, eine Liste der Bytenummern anzugeben, andernfalls wird ein Fehler ausgegeben.

Tabulatoren und Rückschritte werden wie ein Zeichen von 1 Byte behandelt.

Liste ohne Bereiche :

cut -b 1,2,3 state.txt>
Liste ohne Bereich

Liste ohne Bereich

Liste mit Bereichen:

cut -b 1-3,5-7 state.txt>
Liste mit Bereich

Liste mit Bereich

Es verwendet eine spezielle Form für die Auswahl der Bytes vom Anfang bis zum Ende der Zeile:

Sonderform: Auswahl der Bytes vom Zeilenanfang bis zum Zeilenende

Dabei bezeichnet 1- vom 1. Byte bis zum Endbyte einer Zeile

cut -b 1- state.txt>
Sonderform

Sonderform mit der Option -b

Dabei gibt -3 den Abstand vom 1. bis zum 3. Byte einer Zeile an

cut -b -3 state.txt>
Sonderform

Sonderform -b-Option

Nach Zeichen schneiden (-c>) Mit dem Befehl „cut“.

-c (Spalte): Um nach Zeichen zu schneiden, verwenden Sie die Option -c. Dadurch werden die für die Option -c angegebenen Zeichen ausgewählt. Dies kann eine durch Kommas getrennte Liste von Zahlen oder ein durch Bindestrich (-) getrennter Zahlenbereich sein.

Tabulatoren und Rückschritte werden als Charakter behandelt. Es ist notwendig, eine Liste mit Zeichennummern anzugeben, andernfalls wird bei dieser Option ein Fehler ausgegeben.

Syntax:

cut -c [(k)-(n)/(k),(n)/(n)] filename>

Hier, k bezeichnet die Startposition des Zeichens und N bezeichnet die Endposition des Zeichens in jeder Zeile, wenn k Und N werden durch getrennt, andernfalls handelt es sich nur um die Position des Zeichens in jeder Zeile aus der Datei, die als Eingabe verwendet wird.

Bestimmte Zeichen extrahieren:

cut -c 2,5,7 state.txt>
Extrahieren Sie bestimmte Zeichen

Extrahieren Sie bestimmte Zeichen

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

Extrahieren Sie die ersten sieben Zeichen:

cut -c 1-7 state.txt>
Extrahieren Sie die ersten sieben Zeichen

Extrahieren Sie die ersten sieben Zeichen

Der obige Ausschneidebefehl gibt die ersten sieben Zeichen jeder Zeile aus der Datei aus. Cut verwendet eine spezielle Form zum Auswählen von Zeichen vom Anfang bis zum Ende der Zeile:

Sonderform: Auswahl von Zeichen vom Anfang bis zum Ende der Zeile

cut -c 1- state.txt>
Auswählen von Zeichen vom Anfang bis zum Ende der Zeile

Auswahl der Zeichen vom Anfang bis zum Ende der Zeile mit der Option -c

Der obige Befehl druckt vom ersten Zeichen bis zum Ende. Hier wird im Befehl nur die Startposition angegeben und die Endposition wird weggelassen.

cut -c -5 state.txt>
Auswahl der Zeichen vom Anfang bis zum Ende der Zeile mit der Option -c

Auswahl der Zeichen vom Anfang bis zum Ende der Zeile mit der Option -c

Der obige Befehl gibt die Startposition bis zum fünften Zeichen aus. Hier wird die Startposition weggelassen und die Endposition angegeben.

Nach Feld schneiden (-f>) Mit dem Befehl „cut“.

-f (Feld): -c Die Option ist für Leitungen mit fester Länge nützlich. Die meisten Unix-Dateien haben keine Zeilen mit fester Länge. Um die nützlichen Informationen zu extrahieren, müssen Sie nach Feldern und nicht nach Spalten schneiden. Die angegebene Feldnummer muss durch Komma getrennt werden. Bereiche werden nicht mit der Option -f beschrieben . schneiden Verwendet Tab als Standard-Feldtrennzeichen, kann aber auch mit anderen Trennzeichen verwendet werden -D Möglichkeit.

Notiz: Leerzeichen gelten unter UNIX nicht als Trennzeichen.

Syntax:

cut -d 'delimiter' -f (field number) file.txt>

Erstes Feld extrahieren:

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

cut -f 1 state.txt>
Extrahieren Sie das erste Feld mit der Option -f

Extrahieren Sie das erste Feld mit der Option -f

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

cut -d ' ' -f 1 state.txt>
Leerzeichen als Feldtrennzeichen oder -begrenzer

Leerzeichen als Feldtrennzeichen oder -begrenzer

Extrahieren Sie die Felder 1 bis 4:

Der Befehl druckt das Feld von der ersten bis zur vierten Zeile jeder Zeile aus der Datei.

cut -d ' ' -f 1-4 state.txt>

Der Befehl druckt das Feld vom ersten bis zum vierten

Der Befehl druckt das Feld vom ersten bis zum vierten

Komplementausgabe (--complement>) Mit dem Befehl „cut“.

-ergänzen: Wie der Name schon sagt, ergänzt es die Ausgabe. Diese Option kann in Kombination mit anderen Optionen entweder mit verwendet werden -F oder mit -C .

cut --complement -d ' ' -f 1 state.txt>
--ergänzen

-ergänzen

cut --complement -c 5 state.txt>

--ergänzen

-ergänzen

Ausgabetrennzeichen (--output-delimiter>) Mit dem Befehl „cut“.

–Ausgabetrennzeichen: Standardmäßig ist das Ausgabetrennzeichen dasselbe wie das Eingabetrennzeichen, das wir im Schnitt angeben -D Möglichkeit. Um das Ausgabetrennzeichen zu ändern, verwenden Sie die Option –output-delimiter=Trennzeichen .

cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

2024-02-16_13-18

Hier ändert der Befehl „cut“ das Trennzeichen (%) in der Standardausgabe zwischen den Feldern, das mit der Option -f angegeben wird.

Anzeigeversion (--version>) Mit dem Befehl „cut“.

-Ausführung: Diese Option wird verwendet, um die Version von Cut anzuzeigen, die derzeit auf Ihrem System ausgeführt wird.

cut --version>

Zeigt die Version des Schnittbefehls an

Zeigt die Version des Schnittbefehls an

So verwenden Sie tail mit Pipes(|) im Schnittbefehl

Der Schnittbefehl kann mit vielen anderen Befehlen des Unix gepipet werden. In der folgenden Beispielausgabe des Katze Der Befehl wird als Eingabe für die gegeben schneiden Befehl mit -F Option zum Sortieren der aus der Datei state.txt stammenden Statusnamen in umgekehrter Reihenfolge.

cat state.txt | cut -d ' ' -f 1 | sort -r>
Verwenden von tail mit Pipe (|) im Schnittbefehl

Verwenden von tail mit Pipe (|) im Schnittbefehl

Es kann auch mit einem oder mehreren Filtern zur weiteren Verarbeitung verbunden werden. Wie im folgenden Beispiel verwenden wir die Befehle cat, head und cut, deren Ausgabe mithilfe der Direktive(>) in der Datei list.txt gespeichert wird.

cat state.txt | head -n 3 | cut -d ' ' -f 1>list.txt>
cat list.txt>

Umleitung der Ausgabe in eine andere Datei

Klasse vs. Objekt Java

Umleitung der Ausgabe in eine andere Datei

Häufig gestellte Fragen zum Befehl „cut“ unter Linux – FAQs

Wie verwende ich die cut> Befehl zum Extrahieren bestimmter Spalten aus einer Datei?

Beispiel: Extrahieren der ersten und dritten Spalte aus einer CSV-Datei mit dem Namen „ data.csv`> .

cut -d',' -f1,3 data.csv>

Kann ich benutzen cut> eine Reihe von Zeichen aus jeder Zeile extrahieren?

Ja, du kannst. Um die Zeichen 5 bis 10 aus jeder Zeile einer benannten Datei zu extrahierentext.txt>.

cut -c5-10 text.txt>

Wie kann ich das von der Datei verwendete Trennzeichen ändern? cut> Befehl?

Verwenden Sie das ` -d`> Option gefolgt vom Trennzeichen. Um beispielsweise einen Doppelpunkt (:>) als Trennzeichen.

cut -d':' -f1,3 data.txt>

Ist die Nutzung möglich? cut> Felder basierend auf der Zeichenposition extrahieren?

Ja, Sie können Zeichenpositionen mit dem „`“ angeben -c`> Möglichkeit. Beispielsweise, um die Zeichen 1 bis 5 und 10 bis 15 aus jeder Zeile zu extrahieren.

cut -c1-5,10-15 data.txt>

Wie verwende ich cut> Felder basierend auf einem bestimmten Trennzeichen extrahieren und in einer neuen Datei speichern?

Um durch Kommas getrennte Felder zu extrahieren und sie in einer neuen Datei mit dem Namen ` zu speichern output.tx> t`>

cut -d',' -f1,3 data.csv>Ausgabe.txt>

Abschluss

In diesem Artikel haben wir das besprochen ` cut`> Befehl unter Linux, ein vielseitiges Tool zum Extrahieren bestimmter Abschnitte aus Dateien basierend auf Byteposition, Zeichen oder Feld. Es schneidet Textzeilen in Scheiben und gibt die extrahierten Daten aus. Fehler beim Angeben einer Option mit demcut>Der Befehl führt zu einem Fehler. Es können mehrere Dateien verarbeitet werden, die Ausgabe enthält jedoch nicht die Dateinamen. Optionen wie „ -b`> , ` -c`> , und ` -f`> ermöglichen die Extraktion nach Byte, Zeichen bzw. Feld. Der--complement>Die Option kehrt die Auswahl um und druckt, was nicht ausgewählt ist--output-delimiter>Ändert das Ausgabetrennzeichen. Der Befehl enthält auch Optionen für die Versionsanzeige und kann in Kombination mit anderen Befehlen über Pipes zur weiteren Verarbeitung verwendet werden.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L