Beispiel 1: Einen Spaltenbereich aus einer Befehlsausgabe drucken
Der folgende Befehl druckt die zweite, dritte und vierte Spalte der Befehlsausgabe, 'ls -l'. Hier werden die Spaltennummern explizit angegeben, aber ein effizienterer Befehl zum Drucken des gleichen Spaltenbereichs wird im nächsten Beispiel gezeigt.
$ ls -l | awk ' print $2, $3, $4 'Die folgende Ausgabe wird durch den obigen Befehl erzeugt.
Beispiel 2: Drucken Sie den Spaltenbereich aus einer Datei mit a zum Schleife
Um diesem Beispiel und den anderen Beispielen in diesem Tutorial zu folgen, erstellen Sie eine Textdatei mit dem Namen Marken.TXT mit folgendem Inhalt:
ID CSE203 CSE102 CSE2021109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
Der folgende 'awk'-Befehl druckt die ersten drei Spalten mit Markierungen.TXT. Das zum Schleife wird verwendet, um die Spaltenwerte zu drucken, und die Schleife umfasst drei Schritte. Das NF Variable gibt die Gesamtzahl der Felder oder Spalten der Datei an.
$ Katzenmarken.TXT$ awk 'for(i=1;i<=NF-1;i++) printf $i" "; print ""' marks.txt
Die folgende Ausgabe wird durch Ausführen des Befehls erzeugt. Die Ausgabe zeigt dem Schüler IDs und die Markierungen für CSE203 und CSE102.
Beispiel 3: Drucken des Spaltenbereichs durch Definieren von Start- und Endvariablen
Der folgende 'awk'-Befehl druckt die ersten drei Spalten der Befehlsausgabe 'ls -l', indem er die beginnend und Ende Variablen. Hier ist der Wert des beginnend Variable ist 1, und der Wert der Ende Variable ist 3 is. Diese Variablen werden in einer for-Schleife durchlaufen, um die Spaltenwerte zu drucken.
$ ls -l | awk ' BEGIN first = 1; letzte = 3für (i = zuerst; i < last; i++) printf("%s ", $i) print $last '
Die folgende Ausgabe erscheint nach dem Ausführen des Befehls. Die Ausgabe zeigt die ersten drei Spaltenwerte der Ausgabe, 'ls -l'.
Beispiel 4: Drucken eines Spaltenbereichs aus einer Datei mit Formatierung
Der folgende 'awk'-Befehl druckt die ersten drei Spalten von Marken.TXT mit druckenf und Ausgabefeldtrennzeichen (OFS). Hier enthält die for-Schleife drei Schritte, und drei Spalten werden nacheinander aus der Datei gedruckt. OFS wird hier verwendet, um Leerzeichen zwischen den Spalten hinzuzufügen. Wenn der Zählerwert der Schleife (i) gleich dem Ende Variable, dann wird ein Zeilenumbruch(\n) erzeugt.
$ Katzenmarken.TXT$ awk -v start=1 -v end=3 ' for (i=start; i<=end;i++) printf("%s%s",
$i,(i==Ende) ? "\n" : OFS) ' Markierungen.TXT
Die folgende Ausgabe wird generiert, nachdem die obigen Befehle ausgeführt wurden.
Beispiel 5: Drucken Sie den Spaltenbereich aus einer Datei mit einer bedingten Anweisung
Der folgende 'awk'-Befehl druckt die erste und letzte Spalte einer Datei mithilfe einer for-Schleife und einer if-Anweisung. Hier umfasst die for-Schleife vier Schritte. Das beginnend und Ende Variablen werden im Skript verwendet, um die zweite und dritte Spalte aus der Datei wegzulassen, indem die if-Bedingung verwendet wird. Die OFS-Variable wird verwendet, um Leerzeichen zwischen den Spalten hinzuzufügen, und die ORS-Variable wird verwendet, um nach dem Drucken der letzten Spalte einen Zeilenumbruch (\n) hinzuzufügen.
$ Katzenmarken.TXT$ awk -v start=2 -v end=3 ' for (i=1; i<=NF;i++)
if( i>=start && i<=end) continue;
else printf("%s%s", $i,(i!=NF) ? OFS : ORS) ' Markierungen.TXT
Die folgende Ausgabe erscheint, nachdem Sie die obigen Befehle ausgeführt haben. Die Ausgabe zeigt die erste und letzte Markierungsspalte.TXT.
Beispiel 6: Drucken Sie den Spaltenbereich aus einer Datei mit der NF-Variablen
Der folgende 'awk'-Befehl druckt die erste und letzte Spalte aus der Datei unter Verwendung einer NF-Variablen. Es werden keine Schleifen oder bedingten Anweisungen verwendet, um die Spaltenwerte zu drucken. NF gibt die Anzahl der Felder an. Es gibt vier Spalten in Markierungen.TXT. $(NF-3) definiert die erste Spalte und $NF gibt die letzte Spalte an.
$ Katzenmarken.TXT$ awk 'print $(NF-3)" "$NF' markiert.TXT
Die folgende Ausgabe wird durch Ausführen der obigen Befehle erzeugt. Die Ausgabe zeigt die erste und letzte Markierungsspalte.TXT.
Beispiel 7: Drucken Sie den Spaltenbereich aus einer Datei mit substr() und index()
Die Funktion index() gibt eine Position zurück, wenn der zweite Argumentwert im ersten Argumentwert vorhanden ist. Die Funktion substr() kann drei Argumente annehmen. Das erste Argument ist ein Stringwert, das zweite Argument ist die Startposition und das dritte Argument ist die Länge. Das dritte Argument von substr() wird im folgenden Befehl weggelassen. Da die Spalte im Befehl 'awk' bei $1 beginnt, gibt die Funktion index() $3 zurück und der Befehl druckt von $3 bis $4.
$ Katzenmarken.TXT$ awk 'print substr($0,index($0,$3))' markiert.TXT
Die folgende Ausgabe wird durch Ausführen der obigen Befehle erzeugt.
Beispiel 8: Drucken Sie einen Spaltenbereich nacheinander aus einer Datei mit printf file
Der folgende 'awk'-Befehl druckt die erste, zweite und dritte Markierungsspalte.txt, indem Sie genügend Platz für 10 Zeichen einstellen.
$ Katzenmarken.TXT$ awk '//printf "%10s %10s %10s\n",$1,$3,$2 ' Zeichen.TXT
Die folgende Ausgabe wird durch Ausführen der obigen Befehle erzeugt.
Fazit
Es gibt verschiedene Möglichkeiten, den Spaltenbereich aus der Befehlsausgabe oder einer Datei zu drucken. Dieses Tutorial zeigt, wie der Befehl 'awk' Linux-Benutzern helfen kann, Inhalte aus Tabellendaten zu drucken.