Schnitt (Unix)
Originalautor (en) | AT & T Bell Laboratories |
---|---|
Entwickler (en) | Verschiedene Open Source und kommerziell Entwickler |
Erstveröffentlichung | Februar 1985 |
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
- ^ Die einzelne Unix -Spezifikation, Version 4 von Die offene Gruppe - Shell and Utilities Referenz,
- ^ Freebsd Allgemeine Befehle Handbuch - -
- ^ Linux Allgemeine Befehle Handbuch - -
- ^ "Native Win32 -Ports einiger GNU -Dienstprogramme". Unxutils.SourceForge.net.
- ^ IBM. "IBM System I Version 7.2 Programmierung Qshell" (PDF). Archiviert (PDF) vom Original am 2020-09-18. Abgerufen 2020-09-05.
Externe Links
- Die einzelne Unix -Spezifikation, Version 4 von Die offene Gruppe - Shell and Utilities Referenz,
- Softpanorama Cut -Seite.
- Schneiden Sie ausgewählte Felder jeder Zeile einer Datei aus Ein Porträt von Cut (1) und seinem historischen Hintergrund.