Es gibt verschiedene Verwendungen des Befehls "awk" unter Linux. Zum Beispiel kann es verwendet werden, um den Inhalt einer Textdatei zu drucken. Die erste Zeile vieler Textdateien enthält die Überschrift der Datei, und manchmal muss die erste Zeile übersprungen werden, wenn der Inhalt der Datei gedruckt wird. In diesem Tutorial zeigen wir Ihnen, wie Sie diese Aufgabe erfüllen können, indem wir den Befehl "awk" verwenden.
Erstellen Sie eine Textdatei
Um diesem Tutorial zu folgen, erstellen Sie eine tab delimitierte Textdatei mit dem Namen Bücherliste.txt mit dem folgenden Inhalt. Diese Datei enthält eine Liste von Büchern mit ihren entsprechenden Autoren. In diesem Tutorial zeigen wir Ihnen, wie Sie verschiedene Teile dieser Datei drucken, nachdem Sie die erste Zeile übersprungen haben.
Cybersicherheit mit Bash Paul Troncone, Carl AlbingBeispiel 1: Überspringen Sie die erste Zeile einer Datei mit NR und dem '>' Operator
Die NR -Variable gibt die Anzahl der Datensätze in einer Datei an. Der folgende Befehl 'awk' verwendet die NR -Variable, um die erste Zeile einer Datei zu überspringen. Der Wert von NR beträgt 1 für die erste Zeile. Der folgende Befehl druckt Zeilen, für die der NR -Wert größer als 1 ist.
$ cat booklist.txt
$ awk '(nr> 1)' Buchliste.txt
Die folgende Ausgabe wird erstellt, nachdem die obigen Befehle ausgeführt wurden. Die Ausgabe enthält alle anderen Zeilen als die erste Zeile der Datei.
Beispiel 2: Überspringen Sie die erste Zeile mit NR und der '!= 'Operator
Der folgende Befehl 'awk' ähnelt dem im vorherigen Beispiel. Allerdings das '!= 'Vergleichsoperator wird hier anstelle von'> 'verwendet.'.
$ cat booklist.txt
$ awk 'nr!= 1 'Buchliste.txt
Die folgende Ausgabe wird erstellt, nachdem die obigen Befehle ausgeführt wurden. Die Ausgabe zeigt alle anderen Zeilen als die erste Zeile der Datei.
Beispiel 3: Überspringen Sie die erste Zeile einer Datei mit einer bedingten Anweisung
Der folgende Befehl 'awk' druckt die Zeilen der Datei, wenn die Anweisung wahr ist. Hier ist die IF -Aussage nur dann zutrifft, wenn der NR -Wert nicht gleich 1 ist.
$ cat booklist.txt
$ awk 'if (nr!= 1) print 'Buchliste.txt
Die folgende Ausgabe wird erstellt, nachdem die obigen Befehle ausgeführt wurden. Die Ausgabe enthält alle Zeilen mit Ausnahme der ersten Zeile der Datei.
Beispiel 4: Drucken Sie die Buchnamen aus der Datei, aber überspringen Sie die erste Zeile
In diesem Beispiel werden zwei 'awk' Befehle verwendet, um alle Buchnamen mit Ausnahme der ersten zu drucken. In dem Befehl 'awk' wird die erste Spalte aus der Datei basierend auf dem Feld Separator (\ t) gelesen und die Ausgabe an den zweiten 'awk' -Fehl senden. Der zweite Befehl 'awk' druckt die gewünschte Ausgabe aus.
$ cat booklist.txt
$ awk -f "\ t" 'drucken $ 1' Buchliste.txt | awk 'nr!= 1 print '
Die folgende Ausgabe wird erstellt, nachdem die obigen Befehle ausgeführt wurden. Die Ausgabe zeigt alle Buchnamen mit Ausnahme der des ersten Buches.
Beispiel 5: Formatieren Sie den Dateiinhalt, nachdem Sie die erste Zeile übersprungen haben
Die Option '-f', die NR-Variable und die Printf-Funktion werden im folgenden Befehl 'awk' verwendet, um eine formatierte Ausgabe nach dem Überspringen der ersten Zeile zu generieren. Der Befehl teilt den Dateiinhalt basierend auf \ t in Spalten und druckt Printf die ersten und zweiten Spalten aus, wenn der NR -Wert mindestens 2 beträgt.
$ cat booklist.txt
$ awk -f '\ t' 'nr> = 2 printf " %30S %20S \ n", $ 1, $ 2' Buchliste.txt
Die folgende Ausgabe wird erstellt, nachdem die obigen Befehle ausgeführt wurden. Die Ausgabe zeigt den formatierten Inhalt der Datei mit Ausnahme der ersten Zeile der Datei.
Beispiel 6: Drucken Sie die Buchnamen, nachdem Sie die erste Zeile mit NR und NF übersprungen haben
Der folgende Befehl 'awk' verwendet die Option '-f' und NR und NF, um die Buchnamen zu drucken, nachdem das erste Buch übersprungen wurde. Die Option '-f' wird verwendet, um den Inhalt der Dateibasis auf \ t zu trennen. NR wird verwendet, um die erste Zeile zu überspringen, und NF wird verwendet, um nur die erste Spalte zu drucken.
$ cat booklist.txt
$ awk -f '\ t' 'nr> 1 && nf = 1' Buchliste.txt
Die folgende Ausgabe wird erstellt, nachdem die obigen Befehle ausgeführt wurden. Die Ausgabe enthält alle Buchnamen in der Datei mit Ausnahme der des ersten Buches.
Beispiel 7: Drucken Sie die formatierten Autorennamen, nachdem Sie die erste Zeile übersprungen haben
Der folgende Befehl 'awk' verwendet die Option '-f' und eine bedingte Anweisung, um die Autorennamen zu drucken, nachdem die erste Zeile übersprungen wurde. Hier wird der NR -Wert im IF -Zustand verwendet. Hier wird „Autor Name: \ n \ n“ als erste Zeile anstelle des Inhalts aus der ersten Zeile gedruckt. Die Namen des Autors aus der Datei werden für die anderen Werte von NR gedruckt.
$ cat booklist.txt
$ awk -f '\ t' 'if (nr == 1) printf "\ naututhor name: \ n \ n"; sonst printf "%s \ n", $ 2 'Buchliste.txt
Die folgende Ausgabe wird erstellt, nachdem die obigen Befehle ausgeführt wurden. Die Ausgabe zeigt den Text „Autorame“: mit einer neuen Linie, und alle Autorennamen werden mit Ausnahme des ersten gedruckt.
Abschluss
Die erste Zeile einer Datei kann mit verschiedenen Linux -Befehlen übersprungen werden. Wie in diesem Tutorial gezeigt, gibt es verschiedene Möglichkeiten, die erste Zeile einer Datei mit dem Befehl "awk" zu überspringen. Meldbar kann die NR -Variable des Befehls 'awk' verwendet werden, um die erste Zeile einer Datei zu überspringen.