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

10 praktische Linux-Cut-Befehlsbeispiele zum Auswählen von Dateispalten

Der Linux-Befehl cut wird für die Textverarbeitung verwendet. Sie können diesen Befehl verwenden, um Textteile aus einer Datei zu extrahieren, indem Sie Spalten auswählen.

Dieses Tutorial enthält einige praktische Beispiele für cut-Befehle, die Sie bei Ihren täglichen Befehlszeilenaktivitäten verwenden können.

Für die meisten Beispiele verwenden wir die folgende Testdatei.

$ cat test.txt
cat command for file oriented operations.
cp command for copy files or directories.
ls command to list out files and directories with its attributes.

1. Zeichenspalte auswählen

Um nur eine gewünschte Spalte aus einer Datei zu extrahieren, verwenden Sie die Option -c. Das folgende Beispiel zeigt das zweite Zeichen aus jeder Zeile einer Datei test.txt

$ cut -c2 test.txt
a
p
s

Wie oben zu sehen, sind die Zeichen a, p, s das zweite Zeichen jeder Zeile der Datei test.txt.

2. Wählen Sie die Zeichenspalte mithilfe des Bereichs aus

Eine Reihe von Zeichen kann auch aus einer Datei extrahiert werden, indem die Start- und Endposition mit - getrennt angegeben wird. Das folgende Beispiel extrahiert die ersten 3 Zeichen jeder Zeile aus einer Datei namens test.txt

$ cut -c1-3 test.txt
cat
cp
ls

3. Wählen Sie die Zeichenspalte mit Start- oder Endposition aus

Mit der Option -c kann entweder die Startposition oder die Endposition an den Schnittbefehl übergeben werden.

Im Folgenden wird nur die Startposition vor dem ‚-‘ angegeben. Dieses Beispiel extrahiert vom 3. Zeichen bis zum Ende jeder Zeile aus der Datei test.txt.

$ cut -c3- test.txt
t command for file oriented operations.
 command for copy files or directories.
 command to list out files and directories with its attributes.

Im Folgenden wird nur die Endposition nach dem ‚-‘ angegeben. Dieses Beispiel extrahiert 8 Zeichen vom Anfang jeder Zeile aus der Datei test.txt.

$ cut -c-8 test.txt
cat comm
cp comma
ls comma

Die gesamte Zeile würde gedruckt, wenn Sie keine Zahl vor oder nach dem ‚-‘ angeben, wie unten gezeigt.

$ cut -c- test.txt
cat command for file oriented operations.
cp command for copy files or directories.
ls command to list out files and directories with its attributes.

4. Wählen Sie ein bestimmtes Feld aus einer Datei aus

Anstatt x Zeichen auszuwählen, können Sie, wenn Sie ein ganzes Feld extrahieren möchten, die Optionen -f und -d kombinieren. Die Option -f gibt an, welches Feld Sie extrahieren möchten, und die Option -d gibt an, welches Feldtrennzeichen in der Eingabedatei verwendet wird.

Das folgende Beispiel zeigt nur das erste Feld jeder Zeile aus der Datei /etc/passwd mit dem Feldbegrenzer :(Doppelpunkt). In diesem Fall ist das erste Feld der Benutzername. Die Datei

$ cut -d':' -f1 /etc/passwd
root
daemon
bin
sys
sync
games
bala

5. Mehrere Felder aus einer Datei auswählen

Sie können auch mehr als ein Feld aus einer Datei oder Standardausgabe extrahieren. Das folgende Beispiel zeigt den Benutzernamen und das Home-Verzeichnis von Benutzern, die die Login-Shell als „/bin/bash“ haben.

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1,6
root:/root
bala:/home/bala

Um den Feldbereich anzuzeigen, geben Sie das Startfeld und das Endfeld wie unten gezeigt an. In diesem Beispiel wählen wir die Felder 1 bis 4, 6 und 7

aus
$ grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7
root:x:0:0:/root:/bin/bash
bala:x:1000:1000:/home/bala:/bin/bash

6. Felder nur auswählen, wenn eine Zeile das Trennzeichen enthält

Wenn Sie in unserem /etc/passwd-Beispiel ein anderes Trennzeichen als :(Doppelpunkt) übergeben, zeigt cut einfach die ganze Zeile an.

Im folgenden Beispiel haben wir das Trennzeichen als | angegeben (pipe), und der cut-Befehl zeigt einfach die ganze Zeile an, auch wenn er keine Zeile mit | findet (Pipe) als Trennzeichen.

$ grep "/bin/bash" /etc/passwd | cut -d'|'  -f1
root:x:0:0:root:/root:/bin/bash
bala:x:1000:1000:bala,,,:/home/bala:/bin/bash

Es ist jedoch möglich, mit der Option -s nur die Zeilen zu filtern und anzuzeigen, die das angegebene Trennzeichen enthalten.

Das folgende Beispiel zeigt keine Ausgabe an, da der cut-Befehl keine Zeilen mit | gefunden hat (Pipe) als Trennzeichen in der Datei /etc/passwd.

$ grep "/bin/bash" /etc/passwd | cut -d'|' -s -f1

7. Alle Felder außer den angegebenen Feldern auswählen

Um die Auswahlfeldliste zu ergänzen, verwenden Sie die Option –complement.

Das folgende Beispiel zeigt alle Felder aus der Datei /etc/passwd außer Feld 7

$ grep "/bin/bash" /etc/passwd | cut -d':' --complement -s -f7
root:x:0:0:root:/root
bala:x:1000:1000:bala,,,:/home/bala

8. Ausgabetrennzeichen für Anzeige ändern

Standardmäßig ist das Ausgabetrennzeichen dasselbe wie das Eingabetrennzeichen, das wir in der Option cut -d angeben.

Um das Ausgabetrennzeichen zu ändern, verwenden Sie die Option –output-delimiter wie unten gezeigt. In diesem Beispiel ist das Eingabetrennzeichen :(Doppelpunkt), aber das Ausgabetrennzeichen ist # (Hash).

$ grep "/bin/bash" /etc/passwd | cut -d':'  -s -f1,6,7 --output-delimiter='#'
root#/root#/bin/bash
bala#/home/bala#/bin/bash

9. Ändern Sie das Ausgabetrennzeichen in Newline

In diesem Beispiel wird jedes einzelne Feld der Ausgabe des Schnittbefehls in einer separaten Zeile angezeigt. Wir haben immer noch –output-delimiter verwendet, aber der Wert ist $’\n’, was darauf hinweist, dass wir einen Zeilenumbruch als Ausgabetrennzeichen hinzufügen sollten.

$ grep bala /etc/passwd | cut -d':' -f1,6,7 --output-delimiter=$'\n'
bala
/home/bala
/bin/bash

10. Cut mit anderer Unix-Befehlsausgabe kombinieren

Die Leistungsfähigkeit des cut-Befehls kann realisiert werden, wenn Sie ihn mit der Standardausgabe eines anderen Unix-Befehls kombinieren.

Sobald Sie die oben erläuterte grundlegende Verwendung des Ausschneidebefehls beherrschen, können Sie den Ausschneidebefehl klugerweise verwenden, um viele Ihrer Anforderungen zur Textbearbeitung zu lösen.

Das folgende Beispiel zeigt, wie Sie nur nützliche Informationen aus der Ausgabe des Befehls ps extrahieren können. Wir haben auch gezeigt, wie wir die Ausgabe des Befehls ps mit grep und sed gefiltert haben, bevor die endgültige Ausgabe an den Befehl cut übergeben wurde. Hier haben wir die Schnittoptionen -d und -f verwendet, die wir in den obigen Beispielen erklärt haben.

$ ps axu | grep python | sed 's/\s\+/ /g' | cut -d' ' -f2,11-
2231 /usr/bin/python /usr/lib/unity-lens-video/unity-lens-video
2311 /usr/bin/python /usr/lib/unity-scope-video-remote/unity-scope-video-remote
2414 /usr/bin/python /usr/lib/ubuntuone-client/ubuntuone-syncdaemon
2463 /usr/bin/python /usr/lib/system-service/system-service-d
3274 grep --color=auto python

Linux
  1. mv-Befehl unter Linux:7 wesentliche Beispiele

  2. cp-Befehl unter Linux:7 praktische Beispiele

  3. ln-Befehlsbeispiele in Linux

  4. file Befehlsbeispiele in Linux

  5. cut-Befehlsbeispiele in Linux

16 Praktische Beispiele für den Traceroute-Befehl unter Linux

20 praktische Beispiele für den Chown-Befehl unter Linux

15 Praktische Beispiele für den Locate-Befehl unter Linux

12 praktische Beispiele für In Command unter Linux

15 Praktische Beispiele für den Rsync-Befehl unter Linux

5 praktische Beispiele für Tail-Befehle unter Linux