In Linux- und Unix-Systemen sind viele Dienstprogramme verfügbar, mit denen Sie Textdateien verarbeiten und filtern können. cut
ist ein Befehlszeilenprogramm, mit dem Sie Teile von Zeilen aus angegebenen Dateien oder Pipe-Daten ausschneiden und das Ergebnis in der Standardausgabe drucken können. Es kann verwendet werden, um Teile einer Zeile nach Trennzeichen, Byte-Position und Zeichen zu schneiden.
In diesem Artikel zeigen wir Ihnen, wie Sie die cut
verwenden Befehl durch praktische Beispiele und detaillierte Erklärungen der gängigsten Optionen.
Verwendung des Schnittbefehls #
Die Syntax für cut
Der Befehl lautet wie folgt:
Die Optionen, die cut
mitteilen, ob sie verwendet werden sollen Als Trennzeichen, Byteposition oder Zeichen beim Ausschneiden ausgewählter Teile lauten die Zeilen wie folgt:
Sie können eine und nur eine der oben aufgeführten Optionen verwenden.
Andere Optionen sind :
-
-d
(--delimiter
) – Geben Sie ein Trennzeichen an, das anstelle des Standardtrennzeichens verwendet wird. “ TAB-Trennzeichen. -
--complement
– Ergänzen Sie die Auswahl. Bei Verwendung dieser Option zeigtcut
alle Bytes, Zeichen, oder Felder außer dem se ausgewählt. -
-s
(--only-delimited
) – Standardmäßigcut
Gibt die Zeilen aus, die kein Trennzeichen enthalten. Wenn diese Option verwendet wird, drucktcut
keine Zeilen, die keine Trennzeichen enthalten. -
--output-delimiter
– Das Standardverhalten voncut
wird das Eingabetrennzeichen als Ausgabetrennzeichen verwendet. Mit dieser Option können Sie eine andere Ausgabe-Trennzeichenfolge angeben.
Der Befehl cut
kann null oder mehr Eingabedateinamen akzeptieren. Wenn kein FILE
angegeben ist oder wenn FILE
-
ist, cut
liest aus der Standardeingabe.
Das Argument LIST
, das an -f
übergeben wurde Die Optionen -b
und -c
können eine Ganzzahl, mehrere durch Kommas getrennte Ganzzahlen, ein Bereich von Ganzzahlen oder mehrere durch Kommas getrennte Ganzzahlbereiche sein . Jeder Bereich kann einer der folgenden sein:
-
N
das N-te Feld, Byte oder Zeichen, beginnend mit 1. -
N-
vom N-ten Feld, Byte oder Zeichen bis zum Zeilenende. -
N-M
vom N-ten zum M-ten Feld, Byte oder Zeichen. -
-M
vom ersten zum M-ten Feld, Byte oder Zeichen.
Schneiden nach Feld #
Um die zu schneidenden Felder anzugeben, rufen Sie den Befehl mit der Option -f
auf. Wenn nicht angegeben, lautet das Standardtrennzeichen „TAB“.
In den folgenden Beispielen verwenden wir die folgende Datei. Die Felder sind durch Tabulatoren getrennt.
Zum Anzeigen des ersten und dritten Felds würden Sie beispielsweise Folgendes verwenden:
Oder wenn Sie vom 1. bis zum 4. Feld anzeigen möchten:
Schneiden basierend auf einem Trennzeichen #
Um basierend auf einem Trennzeichen zu schneiden, rufen Sie den Befehl mit der -d
Option, gefolgt von dem Trennzeichen, das Sie verwenden möchten.
Um beispielsweise das 1. und 3. Feld mit „:“ als Trennzeichen anzuzeigen, geben Sie Folgendes ein:
Sie können jedes einzelne Zeichen als Trennzeichen verwenden. Im folgenden Beispiel verwenden wir das Leerzeichen als Trennzeichen und drucken das zweite Feld:
So ergänzen Sie die Auswahl #
Um die Auswahlfeldliste zu ergänzen, verwenden Sie die Option --complement
. Dadurch werden nur die Felder gedruckt, die nicht mit der Option -f
ausgewählt wurden.
Mit dem folgenden Befehl werden alle Felder außer dem 1. und 3. Feld gedruckt:
Festlegen eines Ausgabetrennzeichens #
Verwenden Sie zum Angeben des Ausgabetrennzeichens --output-delimiter
Option. Um beispielsweise das Ausgabetrennzeichen auf _
zu setzen, verwenden Sie:
Schneiden nach Bytes und Zeichen #
Bevor wir fortfahren, unterscheiden wir zwischen Bytes und Zeichen.
Ein Byte besteht aus 8 Bits und kann darstellen 256 verschiedene Werte. Bei der Festlegung des ASCII-Standards wurden alle Buchstaben, Zahlen und Symbole berücksichtigt, die für die Arbeit mit Englisch erforderlich sind. Die ASCII-Zeichentabelle enthält 128 Zeichen, und jedes Zeichen wird durch ein Byte dargestellt.Als Computer global zugänglich wurden, führten Technologieunternehmen neue Zeichencodierungen für verschiedene Sprachen ein. Für Sprachen mit mehr als 256 Zeichen war eine einfache 1: 1-Zuordnung nicht möglich. Dies führt zu verschiedenen Problemen wie dem Teilen von Dokumenten oder dem Durchsuchen von Websites, und es wurde ein neuer Unicode-Standard benötigt, der die meisten Schreibsysteme der Welt handhaben kann. UTF-8 wurde erstellt, um diese Probleme zu lösen. In UTF-8 werden nicht alle Zeichen mit 1 Byte dargestellt. Zeichen können mit 1 bis 4 Byte dargestellt werden.
Die Option -b
(--bytes
) weist den Befehl an Schneiden Sie Abschnitte aus jeder Zeile aus, die durch bestimmte Bytepositionen angegeben wird.
In den folgenden Beispielen verwenden wir das Zeichen ü
, das 2 Bytes benötigt.
Wählen Sie das 5. Byte aus:
Wählen Sie das 5., 9. und 13. Byte aus:
Wählen Sie den Bereich vom 1. bis zum 5. Byte:
Zum Zeitpunkt des Schreibens dieses Artikels hat die in GNU coreutils gebündelte Version von cut
keine eine Option zum Schneiden nach Zeichen. Bei Verwendung der Option -c
verhält sich cut
genauso wie bei Verwendung der Option -b
.
Schnittbeispiele #
Der Befehl cut
wird normalerweise in Kombination mit anderen Befehlen über Piping verwendet. Hier einige Beispiele:
Eine Liste aller Benutzer abrufen #
Die Ausgabe des Befehls getent passwd
wird an cut
, das das erste Feld mit :
als Trennzeichen druckt.
Die Ausgabe zeigt eine Liste aller Systembenutzer.
10 am häufigsten verwendete Befehle anzeigen #
Im folgenden Beispiel wird cut
verwendet um die ersten 8 Bytes aus jeder Zeile der Befehlsausgabe history
zu entfernen.
Schlussfolgerung #
cut
wird verwendet, um ausgewählte Felder aus jeder Zeile bestimmter Dateien oder der Standardeingabe anzuzeigen.
Obwohl sehr nützlich, cut
weist einige Einschränkungen auf. Es wird nicht unterstützt, mehr als ein Zeichen als Trennzeichen anzugeben, und es werden nicht mehrere Trennzeichen unterstützt.