Linux-basierte Betriebssysteme bieten viele Befehlszeilen-Dienstprogramme zur Textverarbeitung, die Sie in Ihrer täglichen Routine verwenden können. Der Cut-Befehl ist ein solches Dienstprogramm zur Textbearbeitung, das Trennzeichen, Bytes, Felder und Spalten verwendet, um eine erforderliche Zeichenfolge aus einer Flatfile-Datenbank oder einer Zeile abzurufen.
Da eine Flat-File-Datenbank keinen strukturellen Zusammenhang hat und die Datensätze mit Hilfe von Trennzeichen getrennt sind, ist Cut ein ideales Werkzeug, um Zeichen oder Bytes an Informationen zu extrahieren. Dieser Artikel behandelt den Ausschneidebefehl im Detail und zeigt einige praktische Beispiele mit verschiedenen Filteroptionen, um Ihnen den Einstieg in das Werkzeug zu erleichtern.
Überblick über den Schnittbefehl
cut verwendet die folgende grundlegende Syntax:
schneiden
Sie können es auch wie folgt mit anderen Befehlen leiten:
echo „zeichenfolge_von_zeichen“ | schneiden
Bitte beachten Sie, dass das Fehlen einer Option einen Fehler erzeugt. Hier sind einige Flags, die Sie mit cut verwenden können, um seine verschiedenen Funktionen aufzurufen:
Möglichkeit | Beschreibung |
---|---|
-B | Schneidet nach Byte-Position |
-C | Schnitte nach Zeichenposition |
-D | Extrahiert eine Zeichenfolge unter Verwendung des mit der Feldoption (-f) angegebenen Trennzeichens |
-F | Extrahiert nach einem bestimmten Feld |
-S | Extrakte nur für Trennzeichen |
--ergänzen | Drucken Sie die Ausgabe mit Ausnahme des von Ihnen angegebenen Felds |
--Ausgabetrennzeichen | Ersetzen Sie das vorhandene Trennzeichen durch das von Ihnen angegebene |
Hier sind einige Beispiele für den Schnittbefehl, die Ihnen helfen werden, das Werkzeug und seine Funktionen besser zu verstehen.
1. Extrahieren Sie bestimmte Zeichen aus einer Zeichenfolge
Verwenden Sie die -B Option zum Abrufen von Zeichenfolgen anhand ihrer Byteanzahl wie folgt:
echo "Hallo Welt" | Schnitt -b 1,2,3,5,8,9
Ausgabe:
Hallo
Sie können anstelle eines Strings auch einen Dateipfad angeben:
cut -b 1,2,3,4,5 Dateiname.txt
Oder Sie können Zeichen entsprechend ihrer Position im Text extrahieren. Verwenden Sie die -C Option gefolgt von der Reihenfolge/Reihenfolge der Zeichen, die Sie abrufen müssen, wie folgt:
echo "Hallo Welt" | schneide -c 1,2,3,5,6,8,10,11
Ausgabe:
Hallo alt
Um Felder oder Spalten aus einer Flatfile-Datenbank abzurufen, verwenden Sie auf ähnliche Weise den Befehl cut mit dem -F Flaggenoption:
cut -f 3 database.txt
2. Bereich von Bytes oder Zeichen ausschneiden
Sie können auch die verwenden -B Flag mit dem Cut-Befehl, um mehrere Byte-Bereiche wie folgt zu extrahieren und zu drucken:
cut -b 1-7,16-23 database.txt
Sie können den Bereich zum Abrufen von Zeichen mit definieren -C Flagge wie folgt:
cut -c 1-7,16-23 database.txt
3. Extrahieren Sie Text von Start- oder Endpositionen
Verwenden Sie die -cn- Option zum Extrahieren von Text ab dem n-ten Zeichen bis zum Ende der Zeile, wo n ist der Index eines Zeichens in der Zeichenfolge.
Um beispielsweise die Zeichenfolge ab dem sechsten Zeichen bis zum Ende der Zeile zu extrahieren:
cut -c6- database.txt
Oder verwenden Sie den folgenden Befehl, um vom Anfang bis zum letzten zu holen m Zeichen aus der Datei:
cut -c-8 database.txt
4. Mehrere Felder aus einer Datei ausschneiden
Sie können auch mehrere Felder aus einer Datei drucken, indem Sie die verwenden -F Flagge.
cut -f 1,2 Datenbank.txt
Ausgabe:
NAME ALTER
Jon 20
Lisa 24
Jack 18
Bruce 23
Nancy 19
5. Text mit Trennzeichen extrahieren
Du kannst den... benutzen -D Flag, um das Trennzeichen mit dem anzugeben -F Möglichkeit. Das Trennzeichen gibt das Zeichen an, das zum Trennen von Feldern in einer Textdatei verwendet wird.
Zum Beispiel, um die erste Spalte des zu extrahieren /etc/passwd Datei, verwenden Sie einen Doppelpunkt (:) als Trennzeichen:
cut -d ‘:’ -f 1 /etc/passwd
In ähnlicher Weise ist der Trennzeichenwert im angegebenen Textstrom ein einzelnes Leerzeichen:
echo "Die 1% der 1%" | Schnitt -d ' ' -f 2,3
Ausgabe:
1% von
6. Ausgabebegrenzer für Anzeige ändern
Der --Ausgabetrennzeichen flag fügt der Ausgabe des Schnittbefehls Flexibilität hinzu. Beispielsweise können Sie das Flag verwenden, um die Ausgabe in einer separaten Zeile mit dem anzuzeigen $’\n’ (newline) Wert, wie folgt:
grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\n'
Ausgabe:
alice
Alice
/bin/sh
Darüber hinaus können Sie auch ein Trennzeichen einer Eingabedatei durch das Trennzeichen Ihrer Wahl in der Ausgabe ersetzen, indem Sie die verwenden --Ausgabetrennzeichen Flagge:
grep root /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@
Ausgabe:
root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin
7. Felder nur ausschneiden, wenn eine Zeile das Trennzeichen enthält
Verwenden Sie die -S Flag, um Felder nur dann zu extrahieren, wenn die Zeilen ein Trennzeichen enthalten. Der folgende Befehl ruft beispielsweise das Feld nicht ab -f 1 es sei denn, es hat ein Leerzeichen:
echo "HalloWelt" | Schnitt -d " " -f 1 -s
Im Gegensatz dazu erzeugt der unten erwähnte Befehl eine Ausgabe, da die Zeichenfolge das angegebene Trennzeichen enthält:
echo "Hallo Welt" | Schnitt -d " " -f 1 -s
Ausgabe:
Hallo
Ebenso können Sie auch jedes andere Zeichen als Trennzeichen verwenden:
echo "Hallo: Welt" | Schnitt -d ":" -f 2 -s
Ausgabe:
Welt
8. Ergänzen Sie die Befehlsausgabe
Mit dem Dienstprogramm zum Ausschneiden können Sie auch alle Felder außer dem angegebenen Feld drucken. Verwenden Sie die --ergänzen Option wie folgt, um alle Details des Root-Benutzerkontos mit Ausnahme der fünften Spalte abzurufen:
grep "root" /etc/passwd | cut -d ':' --complement -s -f 5
Ausgabe:
root: x: 0:0:/root:/bin/bash
In ähnlicher Weise wird im folgenden Beispiel die -f 1 Parameter muss angezeigt werden Hallo Text jedoch aufgrund der --ergänzen Option, es druckt nur den Rest davon.
Echo "Hallo an die ganze Welt" | cut -d " " -f 1 --complement
Ausgabe:
zur ganzen Welt
Das Beste daran ist, dass Sie den cut-Befehl mit der Standardausgabe anderer Linux/Unix-Befehle kombinieren können.
sed ist ein solches Textbearbeitungstool, mit dem Sie Ihren Text löschen, einfügen und ersetzen können. Sie können seine Ausgabe einfach an den cut-Befehl weiterleiten.
Im folgenden Beispiel der grep-Befehl Die Ausgabe wird an das Dienstprogramm sed geleitet, das den Doppelpunkt (:) durch einen Bindestrich (-) ersetzt und dann cut die Felder 1, 6 und 7 wie folgt anzeigt:
grep alice /etc/passwd | sed 's/:/-/g' | Schnitt -d ' ' -f 1,5,7
Ausgabe:
alice-x-1005-1008-Alice-/home/new/alice-/bin/sh
Arbeiten mit Text unter Linux Mit cut
Der Befehl cut ist ein flexibles und effizientes Befehlszeilendienstprogramm, das Sie in verschiedenen Anwendungsfällen der Textbearbeitung verwenden können. Es verwendet Operationen, um Text aus Dateien oder Standardeingabedaten herauszufiltern. Das Dienstprogramm hat auch den Vorteil, dass Benutzer den Text, den sie anzeigen möchten, einschränken und Trennzeichen ihrer eigenen Wahl hinzufügen können.
Dieser Befehl hat jedoch auch einige Einschränkungen. Sie können keine regulären Ausdrücke verwenden, um Trennzeichen anzugeben, oder mehrere gleichzeitige Befehlsoptionen zum Ausschneiden verwenden. Dieser Artikel hat grundlegende bis fortgeschrittene praktische Beispiele dieses Dienstprogramms behandelt, um Anfängern ein klares Verständnis von Textbearbeitungsbefehlen unter Linux zu vermitteln.
Möchten Sie Ihr Linux-Spiel verbessern und mehr über Textmanipulation erfahren? Hier sind die fünf besten Linux-Befehlszeilentools, mit denen Sie Ihre Reise beginnen können.
Lesen Sie weiter
- Linux
- Linux-Befehle
- Linux-Grundstufe
- Linux-Bash-Shell
Rumaisa ist freiberufliche Autorin bei MUO. Sie hat viele Rollen getragen, von einer Mathematikerin bis hin zu einer Enthusiastin für Informationssicherheit, und arbeitet jetzt als SOC-Analystin. Ihre Interessen umfassen das Lesen und Schreiben über neue Technologien, Linux-Distributionen und alles rund um Informationssicherheit.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um sich anzumelden