Awk

So drucken Sie einen Spaltenbereich mit dem Befehl 'awk''

So drucken Sie einen Spaltenbereich mit dem Befehl 'awk''
Der Befehl 'awk' ist einer von vielen Befehlen, die verwendet werden können, um unter Linux eine Reihe von Spalten aus Tabellendaten zu drucken. Der Befehl 'awk' kann direkt vom Terminal aus verwendet werden, indem die Skriptdatei 'awk' ausgeführt wird. In diesem Tutorial zeigen wir Ihnen, wie Sie einen Spaltenbereich aus Tabellendaten drucken print.

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 CSE202
1109 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 = 3
fü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.

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...