Der Cut-Befehl in Linux und Unix dient dazu, aus jeder Zeile einer Datei einige Teile auszuschneiden und auf der Standardausgabe auszugeben. Mit dem Befehl „Cut“ können wir einen Teil des Inhalts einer Zeichenfolge in Einheiten von Bytes, Zeichen, Feldern (Trennzeichen) usw. extrahieren. In diesem Artikel lernen wir anhand einiger Beispiele die Verwendung des Cut-Befehls kennen. Diese Verwendungsmethoden werden auch in unserer täglichen Arbeit sehr häufig verwendet. Cut-Befehl und Syntax Die grundlegende Syntax des Cut-Befehls lautet wie folgt:
Schauen wir uns zunächst einige Optionen von cut an. Der Befehl cut muss mit auszuführenden Optionen angegeben werden. Zur Veranschaulichung verwenden wir die folgende Textdatei mit dem Namen $ Katze Inhalt.txt Ubuntu Linux Microsoft Windows OsX El Capitan Unix FreeBSD So geben Sie das Trennzeichen an Die am häufigsten verwendeten Optionen sind die Kombination aus In diesem Beispiel wird beispielsweise nur das erste Feld jeder Zeile der Datei /etc/passwd gedruckt und als Trennzeichen wird folgendes verwendet $ cut -d':' -f1 /etc/passwd Wurzel bin Daemon adm lp synchronisieren abschalten Halt mail Operator Spiele Alvin liangxu ... Im folgenden Beispiel drucken wir das erste Feld der Datei content.txt und verwenden Leerzeichen als Trennzeichen. $ cut -d " " -f 1 inhalt.txt Ubuntu Microsoft OxY Unix FreeBSD Im folgenden Beispiel extrahieren wir mehrere Felder. Hier extrahieren wir das erste und sechste Feld aus der Zeile, die die Zeichenfolge /bin/bash in der Datei /etc/passwd enthält, unter Verwendung des Doppelpunkts (:) als Trennzeichen. $ grep "/bin/bash" /etc/passwd | cut -d':' -f1,6 Wurzel:/Wurzel alvin:/home/alvin Um einen Feldbereich anzuzeigen, können Sie die Start- und Endfelder durch einen Bindestrich (-) getrennt angeben, wie unten gezeigt: $ grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7 root:x:0:0:/root:/bin/bash alvin:x:1000:1000:/home/alvin:/bin/bash So vervollständigen Sie die ausgewählte Ausgabe Um die ausgewählten Ausgabefelder zu vervollständigen (d. h., ihre Auswahl aufzuheben), verwenden Sie die Option Das folgende Beispiel druckt alle Felder außer dem zweiten Feld in der Zeile, die /bin/bash in der Datei /etc/passwd enthält: $ grep "/bin/bash" /etc/passwd | cut -d':' --complement -f2 root:0:0:root:/root:/bin/bash So geben Sie das Ausgabetrennzeichen an Verwenden Sie Lassen Sie uns zunächst das folgende Beispiel verwenden, um die Ausgabe zu testen, wenn das Ausgabetrennzeichen nicht angegeben ist. $ cut -d: -f1,7 /etc/passwd | sort | uniq -u _apt:/usr/sbin/nologin Sicherung:/usr/sbin/nologin bin:/usr/sbin/nologin daemon:/usr/sbin/nologin dnsmasq:/usr/sbin/nologin Spiele:/usr/sbin/nologin gnats:/usr/sbin/nologin irc:/usr/sbin/nologin Landschaft:/usr/sbin/nologin Liste:/usr/sbin/nologin lp:/usr/sbin/nologin lxd:/bin/false Nun fügen wir die Option $ cut -d: -f1,7 --output-delimiter ' ' /etc/passwd | sortieren | uniq -u _apt /usr/sbin/nologin Sicherung /usr/sbin/nologin bin /usr/sbin/nologin Daemon /usr/sbin/nologin dnsmasq /usr/sbin/nologin Spiele /usr/sbin/nologin Mücken /usr/sbin/nologin irc /usr/sbin/nologin Landschaft /usr/sbin/nologin Liste /usr/sbin/nologin lp /usr/sbin/nologin lxd /bin/false Testen wir ein weiteres Beispiel und verwenden ein Trennzeichen, um ein Feld pro Zeile zu drucken. Wir geben Die Ausgabe ist:
So extrahieren Sie Inhalte als Zeichen Mit der Option Drucken Sie das erste Zeichen jeder Zeile der Datei context.txt wie folgt: $ cut -c 1 inhalt.txt U M O U F Im Folgenden sind die ersten sieben Zeichen jeder Zeile der Datei context.txt dargestellt. $ cut -c 1-7 inhalt.txt Ubuntu Microso XOt Unix FreeBSD Lassen Sie uns den Test noch einmal durchführen, indem Sie nur die Start- oder Endposition angeben. Im Folgenden werden die vorletzten Zeichen extrahiert: $ cut -c2- inhalt.txt Ubuntu Linux Microsoft Windows sX El Capitan nix reeBSD Extrahieren Sie das erste bis vierte Zeichen: Schnitt -c-4 Inhalt.txt Ubun Mikro OxY Unix Frei So extrahieren Sie byteweise Verwenden Sie die Option Das folgende Beispiel extrahiert das erste, zweite und dritte Byte jeder Zeile in der Datei content.txt: $ cut -b 1,2,3 inhalt.txt Ubu Mikrofon OxY Uni Fre Wir können einen Bereich auch mit dem folgenden Befehl auflisten; $ cut -b 1-3,5-7 inhalt.txt Ubutu Micoso XOtM Uni FreBSD Einige praktische Beispiele cut ist ein nützlicher Befehl, der oft in Verbindung mit anderen Linux- oder Unix-Befehlen verwendet wird. Wenn Sie beispielsweise USER, PID und COMMAND aus dem Befehl ps extrahieren möchten: ps -L un | tr -s " " | cut -d " " -f 2,3,14- BENUTZER-PID-BEFEHL 0 676 /sbin/agetty -o -p --\u --keep-baud 115200,38400,9600 ttyS0 vt220 0 681 /sbin/agetty -o -p --\u --noclear tty1 linux 0 23174 -bash 0 26737 ps -L un 0 26738 tr -s 0 26739 Schnitt -d -f 2,3,14- Testen wir ein weiteres Beispiel, um die Gesamt-, verwendeten und freien Werte des Speichers zu extrahieren und in einer Datei zu speichern. $ free -m | tr -s ' ' | sed '/^Mem/!d' | cut -d" " -f2-4 >> speicher.txt $ Katze Speicher.txt 985 86 234 Zusammenfassen Der Cut-Befehl kann über Pipes mit vielen anderen Linux- oder Unix-Befehlen verbunden werden. Zur weiteren Textverarbeitung können ein oder mehrere Filter durchgeleitet werden. Eine der Einschränkungen des Cut-Befehls besteht darin, dass er die Angabe mehrerer Zeichen als Trennzeichen nicht unterstützt. Mehrere Leerzeichen werden als mehrere Feldtrennzeichen gezählt, daher muss der Befehl „tr“ vor dem Befehl „cut“ verwendet werden, um die gewünschte Ausgabe zu erhalten. Dies ist das Ende dieses Artikels mit der detaillierten Erklärung des Linux-Befehls „cut“. Weitere relevante Inhalte zum Linux-Befehl „cut“ finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung des Organisationsstrukturdiagramms der Vue-Tree-Color-Komponente
>>: Ein Artikel zum Erlernen von Fähigkeiten zur Optimierung von MySQL-Indexabfragen
Wenn wir eine neue CSS-Funktion verwenden möchten...
Wenn wir eine Single-Page-Anwendung entwickeln, m...
Wenn Sie beispielsweise eine neue Tabelle erstell...
Vorwort Bei der täglichen Codeentwicklung gibt es...
Ist es der unten gezeigte Effekt? Wenn ja, lesen ...
Im Laufe der Zeit habe ich festgestellt, dass vie...
Dieser Artikel beschreibt anhand eines Beispiels ...
Vorwort Wir sagen oft, dass Node keine neue Progr...
Inhaltsverzeichnis Download des Installationspake...
MySQL 5.7 MySQL-Befehlszeilenclient mit Befehlen ...
Was ist ein Spiegel? Ein Bild kann als Dateisyste...
Erster Blick auf die Wirkung: Wenn die Maus über ...
<br />Ich freue mich sehr, an dieser Folge d...
JavaScript - Prinzipienreihe Wenn wir in der tägl...
In MySQL gibt es drei Datumstypen: Datum (Jahr-Mo...