unter Linux cut
Befehl für das löschen von Abschnitten aus jeder Zeile der Ausgabe in bash. cut
Befehl bietet einen Mechanismus zum filtern extrahieren/Spalte text aus einer Datei oder der standard-Ausgabe aus. Detaillierte Beispiele finden Sie unten., Wir haben die folgende Textdatei mit dem Namen fruits.txt
apple 1 good grape 5 bad banana 2 not bad
cut OPTION... ...
Spalte auswählen
Der Befehl Cut bietet die Möglichkeit, eine bestimmte Spalte gemäß der Zeichennummer für alle Zeilen auszuwählen. Hier drucken wir alle Zeilen 3 Zeichen Zeile für Zeile auf die Konsole. Dadurch wird nur ein einzelnes Zeichen gedruckt.,
$ cut -c3 fruits.txt
Wählen Sie Spalte Für Charakter-Bereich
Im vorherigen Beispiel haben wir gedruckt, ein einzelnes Zeichen an das terminal. Wir können auch mehrere Zeichen auf die Konsole drucken, indem Sie den Zeichenbereich wie unten angeben. Wir können sehen, dass der Zeichenindex bei 1 beginnt.,
$ cut -c1-6 fruits.txt
Wählen Sie die Spalte Mit den Start-Position
ein Weiteres nützliches feature der schneiden ist die Angabe nur auf die start-position bis zum Ende.
$ cut -c3- fruits.txt
Spalte mit Endposition auswählen
Wir können den Bereich vom Start bis zur angegebenen Position nur unter Angabe der Endposition drucken., Dies übernimmt der Startposition 1
$ cut -c-3 fruits.txt
Wählen Sie Einzelnes Feld
Das Gebiet ist ein Teil von text abgegrenzt, mit dem bestimmte Zeichen wie Leerzeichen, Tabulator, Doppel-Komma, etc. Wir können Text mit Feldnummern auswählen. Standardmäßig ist Feldtrennzeichen tab. Unser Text ist bereits Tab zur Abgrenzung vorgesehen. In diesem Beispiel wählen wir 3. Feld.,
$ cut -f3 fruits.txt
Wählen Sie mehrere Felder
Wie wir in Zeichen tun, können wir auch Feldbereich angeben. Wir werden Fruchtnamen und-zählungen mit dem folgenden Befehl auswählen.
Im folgenden Beispiel werden mehrere Felder einzeln ausgewählt, ohne Bereiche zu verwenden.,
$ cut -f1,2,3 fruits.txt
Letztes Feld
Eine der beliebtesten Verwendungen von cut
druckt das letzte Feld. Das Problem ist, dass sich die Anzahl der Felder je nach Text ändern kann und wir das letzte Feld nicht nur mit dem Befehl cut
angeben können. Das folgende Beispiel verwendet den Befehl rev
, um das letzte Feld abzurufen.,
$ cat fruits.txt | rev | cut -f1 | rev
Select Fields Include Specified Chars
By default cut
do not haben Sie die Möglichkeit, Zeilen nach Zeichen auszuschließen, aber grep
kann leicht verwendet werden, um diese Funktion zu implementieren., Wir wählen nur Zeilen aus, die app
$ grep "app" fruits.txt | cut -f1-2
Select Fields Except for Specified Chars
Wir können das vorherige Beispiel umkehren und unerwünschte Zeilen entfernen. Wir entfernen Zeilen mit app
und drucken dann Spalten von 1 bis 2 .,
$ grep -v "app" fruits.txt | cut -f1-2
Delimiter angeben
Das Trennzeichen wird zum Teilen von Feldern verwendet. Standardmäßig wird die Registerkarte als Trennzeichen verwendet. Es kann jedoch mit der Option -d
wie unten angegeben werden. Nach dem Beispiel verwenden wir :
als Trennzeichen, da die Datei passwd
sie verwendet. Dann möchten wir nur Benutzernamen anzeigen, die sich in Feld 1 befinden.,
$ cut -d: -f1 /etc/passwd
Print Except Fields
Wie wir zuvor sehen, können Felder auch als Bereiche gedruckt werden. Wir können auch drucken, indem wir Felder ausschließen. Dadurch werden alle Umbenennungsfelder gedruckt. Nach dem Beispiel können wir alle Felder außer 2 drucken.
Trennzeichen ändern
Text kann standardmäßig Trennzeichen enthalten. In einigen Situationen möchten wir möglicherweise das Trennzeichen ändern, während wir auf der Konsole drucken., --output-delimiter
option can be used for this operation. The following example will change the tab delimiter to the comma.
$ cut -f1,2,3 --output-delimiter="," fruits.txt