So verwenden Sie Variable im Befehl awk

So verwenden Sie Variable im Befehl awk
Variablen werden verwendet, um in jeder Programmiersprache jeden Wert vorübergehend zu speichern. Das Definieren der Variablen im awk -Befehl ähnelt der Bash -Scripting -Sprache und funktioniert wie Bash, wenn die Shell -Variable mit einem einzelnen Zitat und einem doppelten Zitat verwendet wird. Der Befehl awk hat viele integrierte Variablen für verschiedene Zwecke. Wie benutzerdefinierte, integrierte und Shell-Variablen im Befehl awk verwendet werden können, wird in diesem Tutorial unter Verwendung verschiedener Beispiele angezeigt.

EXample -1: Variable definieren und drucken

Der Befehl 'awk' verwendet '-v' Option, um die Variable zu definieren. In diesem Beispiel die Myvar Variable ist im Befehl 'awk' definiert, um den Wert zu speichern, "Awk variable" das wird später gedruckt. Führen Sie den folgenden Befehl vom Terminal aus, um die Ausgabe zu überprüfen.

$ echo | awk -v myvar = 'awk variable' 'print myvar'

Ausgang:

Beispiel - 2: Verwenden Sie die Shell -Variable in awk mit einem einzelnen Zitat und doppeltem Zitat

Das Beispiel zeigt, wie die Shell -Variable "awk" verwendet werden kann. Hier eine Shellvariable, Myvar wird mit dem Wert deklariert, "Linux -Hinweis" im ersten Befehl. Das Symbol "$" wird mit einem Shell -Variablennamen verwendet, um den Wert zu lesen. Der zweite Befehl liest die Variable, $ myval Mit einem einzigen Zitat (') und dem dritten Befehl liest die Variable $ myvar mit einem doppelten Zitat (") in der Anweisung" awk ".

$ myvar = "Linux Hint"
$ echo | awk -v awkvar = '$ myvar' 'print awkvar; '
$ echo | awk -v awkvar = "$ myvar" 'print awkvar; '

Ausgang:

Es wird in der Ausgabe gezeigt, dass der Wert von $ myvar nicht gelesen werden kann, wenn er ein einzelnes Zitat (') enthält, und die Ausgabe ist $ myvar. Der Wert von $ myvar wird gedruckt, wenn es aus einem doppelten Zitat eingeschlossen ist (").

Beispiel - 3: Lesen Sie die Argc -Variable in awk

Die Argc -Variable wird verwendet, um die Gesamtzahl der Befehlszeilenargumente zu zählen. Drei Befehlszeilenargumentevariablen (T1, T2, T3) werden im folgenden awk -Skript übergeben. Hier beträgt die Gesamtzahl der Argumente mit dem Skript 4. Führen Sie das Skript aus dem Terminal aus.

$ awk 'begin print "Total Argumente =", argc' T1 T2 T3

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Beispiel - 4: Dateiinhalt nach Argumentvariablen lesen

Erstellen Sie eine Textdatei mit dem Namen Kunde.txt mit dem folgenden Inhalt, um dieses Beispiel zu üben. Hier wird jedes Feld der Datei durch Single getrennt Tab Raum.

Kunde.txt

ID -Name
103847 John Micheal
209485 Watson
974732 Mira Hossain

Der Befehl awk kann jedes Feld aus einer beliebigen Textdatei durch Argumentvariablen lesen. Es gibt zwei Felder in Kunde.txt Datei. Dies sind ID und Name. Das folgende Skript wird diese beiden Felder nach Argumentvariablen drucken, $ 1 Und $ 2 durch Trennung von zwei Tab Räume. Führen Sie das Skript aus dem Terminal aus.

$ Cat Kunde.txt
$ Cat Kunde.txt | awk 'print $ 1 "\ t \ t" $ 2;'

Ausgang:

Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt.

Beispiel- 5: Verwenden der integrierten Variablen, der FS und des Feldseparators mit dem Befehl awk

FS -Variable wird im Befehl awk als Feldabscheider verwendet. Der Speicherplatz wird als Standardwert von FS verwendet. Der folgende Befehl lesen die Datei Kunde.txt Verwenden Sie den Speicherplatz als Feldabscheider und drucken Sie den Dateiinhalt aus. Führen Sie den Befehl vom Terminal aus.

$ awk fs Kunde.txt

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

Der Befehl awk kann andere Zeichen als Feldabscheider verwenden, indem sie die Option '-f' verwendet. Erstellen Sie eine Textdatei mit dem Namen Produkt.txt Mit dem folgenden Inhalt, wo ':' als Feldabscheider verwendet wird.

Produkt.txt

101: Kuchen: $ 30
102: Bleistift: $ 5
103: Seife: $ 3
104: Shampoo: $ 10

Es gibt drei Felder in der Datei, Produkt.txt Das enthält Produkt -ID, Name und Preis. Der folgende awk -Befehl druckt nur das zweite Feld jeder Zeile. Führen Sie die Befehle vom Terminal aus.

$ CAT -Produkt.txt
$ awk -f ':' 'print $ 2' Produkt.txt

Ausgang:

Hier druckte der erste Befehl den Inhalt von Produkt.txt und der zweite Befehl druckte nur das zweite Feld der Datei.

Beispiel - 6: Verwenden der integrierten Variablen, NR mit dem Befehl awk

Die NR -Variable wird im Befehl awk verwendet, um die Gesamtzahl der Datensätze oder Zeilen einer Datei zu zählen. Erstellen Sie eine Textdatei mit dem Namen Student.txt Um die Funktion dieser Variablen zu testen.

Student.txt

Name Stapelsemester
John 20 3
Mira 22 1
Ella 18
Charle 15 8

Das folgende awk -Skript druckt die ersten drei Zeilen von Produkt.txt Datei. Hier wird eine Bedingung unter Verwendung der NR -Variablen hinzugefügt. Der Befehl druckt diese Zeilen, in denen der NR -Wert weniger als 4 beträgt. Führen Sie das Skript aus dem Terminal aus.

Ausgang:

Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.

$ cat Student.txt | awk 'nr < 4'

Beispiel - 7: Verwenden der integrierten Variablen, NF mit dem Befehl awk

Die NF -Variable wird im Befehl awk verwendet, um die Gesamtzahl der Felder in jeder Zeile einer Datei zu zählen. Das folgende awk -Skript wird für die Datei angewendet, Student.txt die im vorherigen Beispiel erstellt wird. Das Skript druckt diese Zeilen aus Student.txt Datei, in der die Gesamtfelder weniger als 3 sind. Führen Sie den Befehl vom Terminal aus.

$ cat Student.txt | awk 'nf < 3'

Ausgang:

In der Datei gibt es nur eine Zeile, in der die Gesamtzahl der Felder weniger als 3 beträgt und als Ausgabe gedruckt wird.

Beispiel - 8: Verwenden der integrierten Variablen, OFS With Awk -Befehl

OFS -Variable wird im Befehl awk verwendet, um den Ausgangsfeldabscheider in die Ausgabe hinzuzufügen. Produkt.txt In diesem Beispiel wird die Datei verwendet, um die Verwendung von OFS -Variablen anzuzeigen. ':' wird als Feldabscheider im Produkt verwendet.TXT -Datei. Das folgende awk-Skript verwendet '->' ab dem Wert und das zweite und die dritten Felder der Datei werden durch Hinzufügen dieses Trennzeichens gedruckt. Führen Sie die Befehle vom Terminal aus.

$ CAT -Produkt.txt
$ awk -f ':' 'begin ofs = " ->"; print $ 2, $ 3;' Produkt.txt

Ausgang:

Nach dem Ausführen der Befehle wird die folgende Ausgabe gedruckt.

Abschluss:

Die häufigsten Verwendungen von awk -Variablen werden in diesem Tutorial versucht, zu erklären. Hoffnung, der Leser kann awk -Variablen im Skript nach dem Üben dieses Tutorials ordnungsgemäß verwenden.