Schnitt (Unix)

schneiden
Originalautor (en) AT & T Bell Laboratories
Entwickler (en) Verschiedene Open Source und kommerziell Entwickler
Erstveröffentlichung Februar 1985; Vor 37 Jahren
Betriebssystem Unix, Unix-artig, Ibm i
Plattform Plattformübergreifend
Typ Befehl
Lizenz CoreUtils: GPLV3+

Im Computer, schneiden ist ein Befehlszeile Nützlichkeit auf Unix und Unix-artig Betriebssysteme die verwendet wird, um Abschnitte aus jeder Eingabezeile zu extrahieren - normalerweise von a Datei. Es ist derzeit Teil der GNU CoreUtils Paket und das BSD Grundsystem.

Die Extraktion von Liniensegmenten kann normalerweise durch durchgeführt werden Bytes (-b), Figuren (-c) oder Felder (-f) durch einen Trennzeichen getrennt (-d - das Tab -Zeichen standardmäßig). In jedem Fall muss ein Bereich bereitgestellt werden, der aus einem von einem von besteht N, N-m, N- (N bis zum Ende der Linie) oder -M (Beginn der Linie zu M), wobei N und m von 1 gezählt werden (es gibt keinen Nullwert). Seit Version 6 wird ein Fehler geworfen, wenn Sie einen Nullenwert angeben. Zuvor wurde der Wert ignoriert und als 1 angenommen.

Geschichte

cut ist Teil von X/offen Portabilitätshandbuch seit Ausgabe 2 von 1987. Es wurde in die erste Version von POSIX.1 und der geerbt Einzel -Unix -Spezifikation.[1] Es erschien zuerst in AT & T System III Unix 1982.[2]

Die Version von schneiden gebündelt GNU CoreUtils wurde von David M. Ihnat, David Mackenzie und Jim Meyering geschrieben.[3] Der Befehl ist als separates Paket für verfügbar Microsoft Windows Im Rahmen des Unxutils Sammlung von einheimisch Win32 Häfen von gemeinsamen GNU-Unix-ähnlichen Versorgungsunternehmen.[4] Das schneiden Der Befehl wurde auch auf die portiert Ibm i Betriebssystem.[5]

Beispiele

Annahme einer Datei namens "Datei"Die Zeilen enthalten:

Foo: Bar: Baz: Qux: Quux One: Two: Drei: Vier: Fünf: Sechs: Seven Alpha: Beta: Gamma: Delta: Epsilon: Zeta: Eta: Theta: IOTA: Kappa: Lambda: Mu the Quick Braun Fox Sprungs über den faulen Hund

Um die vierte durch die zehnten Zeichen jeder Zeile auszugeben:

$ Schnitt -c 4-10 Datei: bar: ba : zwei: th HA: Beta  schnell 

Um das fünfte Feld durch das Ende der Linie jeder Zeile mit der Zeile auszugeben Dickdarmcharakter Wie der Feld Grenzwert:

$ Schnitt -d ":" -f 5- DateiQuux fünf, sechs, sieben Epsilon: Zeta: Eta: Theta: IOTA: Kappa: Lambda: mu Der schnelle braune Fuchs springt über den faulen Hund 

(Beachten Sie das, weil die Dickdarmcharakter ist nicht in der letzten Zeile gefunden, die gesamte Linie ist gezeigt)

Möglichkeit -d Spezifiziert ein einzelner Charakter -Trennzeichen (im obigen Beispiel ist es ein Dickdarm), der als Feldabscheider dient. Möglichkeit -f Dies gibt den Bereich der in der Ausgabe enthaltenen Felder an (hier reichen Felder von fünf bis zum Ende). Möglichkeit -d setzt die Verwendung der Option voraus -f.

Um das dritte Feld jeder Zeile mit dem Speicherplatz als Feldtrennzeichen auszugeben:

$ Schnitt -d "" " -f 3 DateiFoo: Bar: Baz: Qux: Quux eins zwei drei vier fünf sechs sieben Alpha: Beta: Gamma: Delta: Epsilon: Zeta: Eta: Theta: IOTA: Kappa: Lambda: mu braun 

(Beachten Sie, dass diese gesamten Zeilen, weil der Raumzeichen nicht in den ersten drei Zeilen gefunden wird.)

Zwei Wörter mit einem Trennzeichen zu trennen:

$ Linie=process.processid$ Schnitt -d "." -f1 <<< $ line Prozess $ Schnitt -d "." -f2 <<< $ line Prozess ID 

Syntax

cut [-b list] [-cliste] [-f list] [-n] [-d delim] [-s] [Datei]

Flaggen, die verwendet werden können, umfassen:

-b
Bytes; eine Liste folgt -b Gibt einen Bereich von an Bytes die zurückgegeben werden, z. cut -b1-66 würde die ersten 66 Bytes einer Linie zurückgeben. NB, wenn sie in Verbindung mit verwendet werden -n, keine Multi-Byte-Zeichen werden geteilt. Nnb. -b funktioniert nur an Eingangsleitungen von weniger als 1023 Bytes
-c
Figuren; eine Liste folgt -c Gibt eine Reihe von Zeichen an, die zurückgegeben werden, z. cut -c1-66 würde die ersten 66 Zeichen einer Zeile zurückgeben
-f
Gibt eine Feldliste an, die durch a getrennt ist Abgrenzer
aufführen
Ein Kommas getrennt oder leer getrennte Liste der bezeichneten Felder, die schrittweise geordnet sind. Das - Der Indikator kann als Abkürzung geliefert werden, um die Einbeziehung von Feldern zu ermöglichen, z. 4-6 für Bereiche 4–6 oder 5- als Abkürzung für Feld 5 bis zum Ende usw.
-n
Verwendet in Kombination mit -B unterdrückt Splits von Multi-Byte-Charaktere
-d
Trennzeichen; der Charakter unmittelbar folgt dem -d Option ist der Feldtrennzeichen für die Verwendung in Verbindung mit dem -f Möglichkeit; Der Standard -Trennzeichen ist Tab. Raum und andere Charaktere mit besonderen Bedeutungen im Kontext der Hülse im Gebrauch muss nach Bedarf entsteht oder entkommen.
-s
Umgeht Linien, die keine Feldgrenzwerte enthalten, wenn -f wird angegeben, sofern nicht anders angegeben.
Datei
Die Datei (und bei Bedarf begleitende Pfad) als Eingabe zu verarbeiten. Wenn keine Datei angegeben ist, dann wird dann angegeben Standardeingabe wird verwendet.

Siehe auch

Verweise

  1. ^ schneiden- Shell and Utilities Referenz, Die einzelne Unix -Spezifikation, Version 4 von Die offene Gruppe
  2. ^ Schnitt (1)- -Freebsd Allgemeine Befehle Handbuch
  3. ^ Schnitt (1)- -Linux Allgemeine Befehle Handbuch
  4. ^ "Native Win32 -Ports einiger GNU -Dienstprogramme". Unxutils.SourceForge.net.
  5. ^ IBM. "IBM System I Version 7.2 Programmierung Qshell" (PDF). Archiviert (PDF) vom Original am 2020-09-18. Abgerufen 2020-09-05.

Externe Links