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.

Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...
HD-Remastered-Spiele für Linux, die noch nie zuvor eine Linux-Version hatten
Viele Spieleentwickler und -herausgeber entwickeln HD-Remaster alter Spiele, um die Lebensdauer des Franchise zu verlängern. Bitte Fans, die Kompatibi...
So verwenden Sie AutoKey zur Automatisierung von Linux-Spielen
AutoKey ist ein Desktop-Automatisierungsdienstprogramm für Linux und X11, programmiert in Python 3, GTK und Qt. Mithilfe der Skript- und MACRO-Funktio...