Android

Linux cut Befehl mit Beispielen

Pipes, Grep, Sort Commands: Linux Tutorial 9

Pipes, Grep, Sort Commands: Linux Tutorial 9

Inhaltsverzeichnis:

Anonim

In Linux- und Unix-Systemen stehen zahlreiche Dienstprogramme zur Verfügung, mit denen Sie Textdateien verarbeiten und filtern können. Cut ist ein Befehlszeilendienstprogramm, mit dem Sie Teile von Zeilen aus angegebenen Dateien oder Pipe-Daten ausschneiden und das Ergebnis auf der Standardausgabe drucken können. Es kann verwendet werden, um Teile einer Zeile nach Trennzeichen, Byteposition und Zeichen auszuschneiden.

In diesem Tutorial zeigen wir Ihnen anhand von praktischen Beispielen und detaillierten Erklärungen der gebräuchlichsten Schnittoptionen, wie Sie den Linux-Befehl cut verwenden.

So verwenden Sie den Befehl Ausschneiden

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

cut OPTION……

Wenn Sie den Befehl cut verwenden, müssen Sie nur eine der folgenden Optionen verwenden:

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

Andere Optionen sind:

  • -d ( --delimiter ) - Geben Sie ein Trennzeichen an, das anstelle des Standardtrennzeichens „TAB“ verwendet wird. --complement - ergänzen die Auswahl. Bei Verwendung dieser Option zeigt cut alle Bytes, Zeichen oder Felder mit Ausnahme der ausgewählten an. -s ( --only-delimited ) - Standardmäßig wird durch Ausschneiden jede Zeile gedruckt, die kein Trennzeichen enthält. Bei Verwendung dieser Option werden beim Ausschneiden keine Zeilen gedruckt, die keine Trennzeichen enthalten. --output-delimiter - Standardmäßig wird das Eingabebegrenzungszeichen als Ausgabebegrenzungszeichen verwendet. Mit dieser Option können Sie eine andere Ausgabe-Trennzeichenfolge angeben.

Der Befehl cut kann null oder mehr eingegebene DATEINamen akzeptieren. Wenn keine DATEI angegeben ist oder wenn DATEI - , liest cut die Standardeingabe.

Das an die Optionen -f , -b und -c LIST-Argument kann eine Ganzzahl, mehrere durch Kommas getrennte Ganzzahlen, ein Ganzzahlbereich 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. NM vom N-ten bis zum M-ten Feld, Byte oder Zeichen. -M vom ersten bis zum m-ten Feld, Byte oder Zeichen.

Nach Feld schneiden

Der Befehl Ausschneiden wird hauptsächlich zum Anzeigen ausgewählter Felder aus jeder Dateizeile oder der Standardeingabe verwendet. Wenn nicht angegeben, lautet das Standardtrennzeichen "TAB".

In den folgenden Beispielen verwenden wir die folgende Datei. Alle 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 das 1. und 3. Feld anzuzeigen, verwenden Sie:

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 anhand eines Trennzeichens

Verwenden Sie zum Ausschneiden basierend auf einem Trennzeichen die Option -d gefolgt von dem Trennzeichen, das Sie verwenden möchten.

Um beispielsweise das erste und dritte Feld mit dem Trennzeichen ":" anzuzeigen, geben Sie Folgendes ein:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

Sie können ein beliebiges einzelnes 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 Liste der Auswahlfelder zu ergänzen, verwenden --complement Option --complement . Dadurch werden nur die Felder gedruckt, die nicht mit der Option -f ausgewählt wurden.

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

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

So geben Sie ein Ausgabetrennzeichen an

Verwenden Sie zum --output-delimiter des --output-delimiter Option --output-delimiter . Um beispielsweise das Ausgabetrennzeichen auf _ , würden Sie Folgendes 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 weitermachen, wollen wir zwischen Bytes und Zeichen unterscheiden.

Ein Byte besteht aus 8 Bits und kann 256 verschiedene Werte darstellen. 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 hat 128 Zeichen und jedes Zeichen wird durch ein Byte dargestellt. Als Computer weltweit populär wurden, führten Technologieunternehmen neue Zeichenkodierungen für verschiedene Sprachen und für Sprachen mit mehr als 256 Zeichen ein. Eine einfache 1: 1-Zuordnung war nicht möglich. Dies führt zu unterschiedlichen Problemen wie dem Teilen von Dokumenten oder dem Durchsuchen von Websites. Es wurde ein neuer Unicode-Standard benötigt, der die meisten Schreibsysteme der Welt unterstützt. 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.

In den folgenden Beispielen wird das Zeichen ü verwendet, das 2 Byte benötigt.

Verwenden Sie die Option -b ( --bytes ), um einen Abschnitt einer Zeile auszuschneiden, indem Sie eine --bytes .

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 von 1. bis 5. Byte:

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

drüb

Zum Zeitpunkt des Schreibens dieses Artikels kann die in GNU coreutils enthaltene Version von cut nicht nach Zeichen geschnitten werden. Bei Verwendung der Option -c verhält sich cut genauso wie bei Verwendung der Option -b .

Beispiele ausschneiden

Der Befehl cut wird normalerweise in Kombination mit anderen Befehlen über Piping verwendet. Hier einige Beispiele.

Holen Sie sich eine Liste aller Benutzer

Die Ausgabe des getent passwd wird an cut wobei das erste getent passwd mit : als Trennzeichen gedruckt wird.

getent passwd | cut -d ':' -f1

Zeigen Sie die 10 am häufigsten verwendeten Befehle an

Im folgenden Beispiel werden mit cut die ersten 8 Bytes aus jeder Zeile der Ausgabe des history .

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

Fazit

Inzwischen sollten Sie ein gutes Verständnis für die Verwendung des Linux-Befehls cut haben. Der Befehl cut ist zwar sehr nützlich, weist jedoch einige Einschränkungen auf. Es wird nicht unterstützt, mehr als ein Zeichen als Trennzeichen anzugeben, und es werden nicht mehrere Dezimeter unterstützt.

Terminal abschneiden