GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Cut-Befehl unter Linux

In Linux- und Unix-Systemen sind viele Dienstprogramme verfügbar, mit denen Sie Textdateien verarbeiten und filtern können. cut ist ein Befehlszeilendienstprogramm, mit dem Sie Teile von Zeilen aus bestimmten Dateien oder per Pipe geleiteten Daten ausschneiden und das Ergebnis auf der Standardausgabe ausgeben können. Es kann verwendet werden, um Teile einer Zeile nach Trennzeichen, Byteposition und Zeichen abzuschneiden.

In diesem Artikel zeigen wir Ihnen, wie Sie den cut verwenden Befehl durch praktische Beispiele und detaillierte Erläuterungen der gängigsten Optionen.

Wie man den cut verwendet Befehl #

Die Syntax für den cut Befehl lautet wie folgt:

cut OPTION... [FILE]...

Die Optionen, die cut mitteilen Ob ein Trennzeichen, eine Byte-Position oder ein Zeichen beim Ausschneiden ausgewählter Teile verwendet werden soll, die Zeilen lauten wie folgt:

  • -f (--fields=LIST ) – Wählen Sie aus, indem Sie ein Feld, eine Gruppe von Feldern oder einen Bereich von Feldern angeben. Dies ist die am häufigsten verwendete Option.
  • -b (--bytes=LIST ) – Wählen Sie aus, indem Sie ein Byte, eine Gruppe von Bytes oder einen Bereich von Bytes angeben.
  • -c (--characters=LIST ) – Wählen Sie aus, indem Sie ein Zeichen, eine Gruppe von Zeichen oder einen Bereich von Zeichen angeben.

Sie können nur eine der oben aufgeführten Optionen verwenden.

Andere Optionen sind:

  • -d (--delimiter ) - Geben Sie ein Trennzeichen an, das anstelle des standardmäßigen „TAB“-Trennzeichens verwendet wird.
  • --complement - Ergänzen Sie die Auswahl. Bei Verwendung dieser Option cut zeigt alle Bytes, Zeichen oder Felder außer den ausgewählten an.
  • -s (--only-delimited ) - Standardmäßig cut druckt die Zeilen, die kein Trennzeichen enthalten. Wenn diese Option verwendet wird, cut druckt keine Zeilen ohne Trennzeichen.
  • --output-delimiter - Das Standardverhalten von cut besteht darin, den Eingabebegrenzer als Ausgabebegrenzer zu verwenden. Mit dieser Option können Sie eine andere Ausgabetrennzeichenfolge angeben.

Der cut Der Befehl kann null oder mehr DATEInamen akzeptieren. Wenn kein FILE angegeben ist, oder wenn FILE ist - , cut liest von der Standardeingabe.

Die LIST Argument, das an -f übergeben wird , -b und -c Optionen können eine ganze Zahl, mehrere durch Kommas getrennte ganze Zahlen, ein Bereich von ganzen Zahlen oder mehrere durch Kommas getrennte ganzzahlige Bereiche sein. Jeder Bereich kann einer der folgenden sein:

  • N das N-te Feld, Byte oder Zeichen, beginnend bei 1.
  • N- vom N-ten Feld, Byte oder Zeichen, bis zum Ende der Zeile.
  • N-M vom N-ten zum M-ten Feld, Byte oder Zeichen.
  • -M vom ersten bis zum M-ten Feld, Byte oder Zeichen.

So schneiden Sie nach Feld #

Um die auszuschneidenden Felder anzugeben, rufen Sie den Befehl mit -f auf Möglichkeit. Wenn nicht angegeben, ist das Standardtrennzeichen „TAB“.

In den folgenden Beispielen verwenden wir die folgende Datei. Die Felder sind durch Tabulatoren getrennt.

test.txt
245:789 4567    M:4540  Admin   01:10:1980
535:763 4987    M:3476  Sales   11:04:1978

Um beispielsweise das 1. und 3. Feld anzuzeigen, würden Sie Folgendes verwenden:

cut test.txt -f 1,3
245:789	M:4540
535:763	M:3476

Oder wenn Sie vom 1. bis zum 4. Feld anzeigen möchten:

cut test.txt -f -4
245:789	4567	M:4540	Admin
535:763	4987	M:3476	Sales

So schneiden Sie basierend auf einem Trennzeichen #

Um anhand eines Trennzeichens auszuschneiden, rufen Sie den Befehl mit -d auf Option, gefolgt von dem Trennzeichen, das Sie verwenden möchten.

Um beispielsweise das 1. und 3. Feld mit „:“ als Trennzeichen anzuzeigen, würden Sie Folgendes eingeben:

cut test.txt -d ':' -f 1,3
245:4540	Admin	01
535:3476	Sales	11

Sie können jedes einzelne Zeichen als Trennzeichen verwenden. Im folgenden Beispiel verwenden wir das Leerzeichen als Trennzeichen und drucken das 2. Feld:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2
ipsum

So ergänzen Sie die Auswahl #

Um die Auswahlfeldliste zu ergänzen, verwenden Sie --complement Möglichkeit. Dadurch werden nur die Felder gedruckt, die nicht mit -f ausgewählt wurden Option.

Der folgende Befehl druckt alle Felder außer dem 1. und 3.:

cut test.txt -f 1,3 --complement
4567	Admin	01:10:1980
4987	Sales	11:04:1978

So geben Sie ein Ausgabetrennzeichen an #

Um das Ausgabetrennzeichen anzugeben, verwenden Sie --output-delimiter Möglichkeit. Zum Beispiel, um das Ausgabetrennzeichen auf _ zu setzen Sie würden verwenden:

cut test.txt -f 1,3 --output-delimiter='_'
245:789_M:4540
535:763_M:3476

Wie man nach Bytes und Zeichen schneidet #

Bevor wir fortfahren, wollen wir zwischen Bytes und Zeichen unterscheiden.

Ein Byte besteht aus 8 Bit und kann 256 verschiedene Werte darstellen. Als der ASCII-Standard eingeführt wurde, berücksichtigte er alle Buchstaben, Zahlen und Symbole, die für die Arbeit mit Englisch erforderlich sind. Die ASCII-Zeichentabelle hat 128 Zeichen, und jedes Zeichen wird durch ein Byte dargestellt. Als Computer weltweit zugänglich wurden, begannen Technologieunternehmen, neue Zeichencodierungen für verschiedene Sprachen einzuführen. Bei Sprachen mit mehr als 256 Zeichen war eine einfache 1-zu-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 mit den meisten Schriftsystemen der Welt umgehen kann. UTF-8 wurde entwickelt, um diese Probleme zu lösen. In UTF-8 werden nicht alle Zeichen mit 1 Byte dargestellt. Zeichen können mit 1 Byte bis 4 Byte dargestellt werden.

Das -b (--bytes )-Option weist den Befehl an, Abschnitte aus jeder Zeile zu schneiden, die durch bestimmte Byte-Positionen angegeben ist.

In den folgenden Beispielen verwenden wir den ü Zeichen, das 2 Bytes benötigt.

Wählen Sie das 5. Byte:

echo 'drüberspringen' | cut -b 5
b

Wählen Sie das 5., 9. und 13. Byte aus:

echo 'drüberspringen' | cut -b 5,9,13
bpg

Wählen Sie den Bereich vom 1. bis 5. Byte:

echo 'drüberspringen' | cut -b 1-5
drüb

Zum Zeitpunkt der Erstellung dieses Artikels war die Version von cut gebündelt in GNU Coreutils hat keine Option zum Schneiden nach Zeichen. Bei Verwendung des -c Option cut verhält sich genauso wie bei Verwendung von -b Option.

Schnittbeispiele #

Der cut Der Befehl wird normalerweise in Kombination mit anderen Befehlen durch Rohrleitungen verwendet. Hier sind einige Beispiele:

Erhalten Sie eine Liste aller Benutzer #

Die Ausgabe von getent passwd Befehl wird an cut übergeben , die das 1. Feld mit : druckt als Trennzeichen.

getent passwd | cut -d ':' -f1

Die Ausgabe zeigt eine Liste aller Systembenutzer.

Die 10 am häufigsten verwendeten Befehle anzeigen #

Im folgenden Beispiel cut wird verwendet, um die ersten 8 Bytes aus jeder Zeile des history zu entfernen Befehlsausgabe.

history | cut -c8- | sort | uniq -c | sort -rn | head

Schlussfolgerung #

cut Der Befehl wird verwendet, um ausgewählte Felder aus jeder Zeile bestimmter Dateien oder der Standardeingabe anzuzeigen.

Obwohl sehr nützlich, cut hat einige Einschränkungen. Es unterstützt nicht die Angabe von mehr als einem Zeichen als Trennzeichen und es unterstützt nicht mehrere Trennzeichen.

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. Linux-mv-Befehl

  2. Linux-IP-Befehl

  3. Linux-cd-Befehl

  4. Einfügen von Befehlsbeispielen in Linux

  5. cut-Befehlsbeispiele in Linux

Linux-Typ-Befehl

W-Befehl unter Linux

Bei Befehl unter Linux

Df-Befehl unter Linux

Cut-Befehl unter Linux

Cut auf Linux Terminal verwenden