Awk

So verwenden Sie eine bedingte Anweisung im awk-Befehl

So verwenden Sie eine bedingte Anweisung im awk-Befehl
Die bedingte Anweisung wird in jeder Programmiersprache verwendet, um eine Anweisung basierend auf einer bestimmten Bedingung auszuführen. Die bedingte Anweisung wird basierend auf dem Wert true oder false ausgeführt, wenn if-else- und if-elseif-Anweisungen verwendet werden, um die bedingte Anweisung in der Programmierung zu schreiben. Awk unterstützt alle Arten von bedingten Anweisungen wie andere Programmiersprachen.  Wie verschiedene bedingte Anweisungen im awk-Befehl verwendet werden können, wird in diesem Tutorial gezeigt.

Syntax:

Die Syntax für vier Arten von bedingten Anweisungen wird unten erwähnt.

  1. if-Anweisung
wenn (Bedingung)
Aussage

Die Anweisung wird ausgeführt, wenn die if-Bedingung wahr zurückgibt.

  1. if-else-Anweisung
wenn (Bedingung)
Aussage-1

sonst
Aussage-2

Die Anweisung-1 wird ausgeführt, wenn die if-Bedingung wahr ist und die Anweisung-2 wird ausgeführt, wenn if false zurückgibt.

  1. if-elseif-Anweisung
wenn (Bedingung)
Aussage-1

sonst
Aussage-2

sonst
Aussage-3

… .
sonst
Aussage-n

Diese bedingte Anweisung wird zum Ausführen einer Anweisung verwendet, die auf einer multiplen if-Bedingung basiert. Wenn die erste Bedingung falsch ist, wird die zweite Bedingung geprüft. Wenn die zweite Bedingung falsch ist, wird die dritte Bedingung überprüft und so weiter. Wenn alle Bedingungen false zurückgeben, wird die Anweisung von else part ausgeführt.

  1. Ternär (?:) Operator
(Bedingung) ? Aussage-1: Aussage-2

Als Alternative zur if-else-Anweisung kann ein ternärer Operator verwendet werden. Wenn die Bedingung wahr ist, wird die Anweisung-1 ausgeführt und wenn die Bedingung falsch ist, wird die Anweisung-2 ausgeführt.

Beispiel-1: Verwenden von simple if in awk

Erstellen Sie eine Textdatei mit dem Namen Angestellter.TXT mit folgendem Inhalt. Angenommen, Sie müssen den Abteilungsnamen, das Alter und das Gehalt des Mitarbeiters mit der ID 11002 herausfinden.

Mitarbeiter.TXT

11001  Verkäufe     45   3000 $
11002  HR        32   1500 $
11003  Marketing 26   1200 $
11004  HR        25   2.500 $

Im folgenden Skript wird eine einfache if-Bedingung verwendet, um die ID 11002 im ersten Feld der Datei zu suchen. Wenn die Bedingung wahr wird, werden die Werte der anderen Felder der entsprechenden Zeile ausgegeben, ansonsten wird nichts gedruckt nothing.

$ awk '
if($1 =="11002")

print "Abteilungsname: ",$2,"\n";
print "Alter: ",$3,"\n";
print "Gehalt: ",$4,"\n";
 

' Mitarbeiter.TXT

Ausgabe:

Die ID 1102 ist in der Datei vorhanden. Es wurden also die anderen Werte des Mitarbeiters gedruckt.

Beispiel-2: Verwenden von if-else in awk

Angenommen, Sie möchten die Gehaltsinformationen der Mitarbeiter drucken, deren Alter kleiner oder gleich 40 ist, und die Altersinformationen für andere Mitarbeiter drucken. Das folgende awk-Skript kann diese Aufgabe erledigen. Es gibt nur einen Mitarbeiter in Mitarbeiter.TXT Akte, deren Alter über 40 ist und das Alter aller anderen Mitarbeiter weniger als 40 Jahre beträgt.

$ awk '
wenn($3 <= 40)

print "Das Gehalt von ",$1" ist ", $4, "\n"

sonst

print "Das Alter von ",$1" ist ", $3, "\n"

 
' Mitarbeiter.TXT

Ausgabe:

Die folgende Ausgabe erscheint nach dem Ausführen des Skripts.

Beispiel-3: Verwenden von if-elseif in einem awk-Skript

Erstellen Sie eine Textdatei mit dem Namen person.txt mit folgendem Inhalt.

Person.TXT

JACKSON     Männlich      Geschäftlich
MARTIN      Männlich      Dienstinhaber
LILY        Weiblich    Manager
ROBINSON    Männlich      CEO

Erstellen Sie eine awk-Datei mit dem Namen if_elseif.awk mit dem folgenden Code, um die Lieblingsfarbe jeder Person zu drucken, deren Name in der Datei vorhanden ist. Die If-elseif-Anweisung wird im Skript verwendet, um diese Aufgabe auszuführen. Das Skript liest den ersten Feldwert der Datei, Mitarbeiter.TXT und prüfe mit einem bestimmten Wert. Wenn das erste wenn Bedingung wird falsch, dann wird die zweite überprüft wenn Zustand und so weiter. Wenn eine if-Bedingung wahr wird, wird ein Farbwert zugewiesen. Wenn alle Bedingungen falsch werden, dann Keiner wird als Farbwert zugewiesen. Die Lieblingsfarbe jeder Person wird gedruckt oder „Keine Person gefunden“ wird gedruckt, wenn kein Personenname übereinstimmt.

if_elseif.awk


Name=$1;
if ( name=="JACKSON" ) color="Blau";
sonst if (name=="MARTIN") color="Schwarz";
sonst if (name=="LILY") color="Rot";
sonst if (name=="ROBINSON") color="White";
else color="Keine";
 
wenn (Farbe)!="Keine") print "Die Lieblingsfarbe von ", Name, "ist", Farbe;
else print "Keine Person gefunden";
 

Führen Sie den folgenden Befehl aus, um die Datei if_elseif . auszuführen.peinlich mit person.TXT

$ awk -f if_elseif.awk person.TXT

Ausgabe:

Die folgende Ausgabe erscheint nach dem Ausführen des Befehls.

Beispiel-4: Verwendung des ternären Operators in awk

Das dritte Feld von Person.TXT Datei enthält den Beruf jeder Person. Der folgende ternäre Operator liest jede Zeile der Datei und gleicht den dritten Feldwert mit „Manager”. Wenn der Wert übereinstimmt, wird der Name der Person ausgegeben, andernfalls das Geschlecht der Person.

$ awk ' drucken ($3=="Manager") ? "Name ist " $1: "Geschlecht ist " $2' Person.TXT

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des Skripts. Eine Person mit „Managerberuf existiert in der Person.TXT. So wird der Name einer Person gedruckt und das Geschlecht wird für andere Personen gedruckt.

Beispiel-5: Verwenden mehrerer Bedingungen in einer if-Anweisung

Logisches ODER und logisches UND können verwendet werden, um mehrere Bedingungen in der bedingten Anweisung des awk-Skripts zu definieren. Das folgende awk-Skript liest jede Zeile von Mitarbeiter.TXT und prüft das Alter und die Bezeichnung mit bestimmten Werten. Logisches UND wird in der verwendet wenn Bedingung. Wenn der Alterswert größer oder gleich 30 ist und die Bezeichnung „HR“ lautet, werden die entsprechende Mitarbeiter-ID und das entsprechende Gehalt gedruckt.

$ awk ' if ($3 >= 30 && $2 == "HR") print "Mitarbeiter-ID: ",
$1, " und ", "Gehalt: ", $4, "\n";' Mitarbeiter.TXT

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des Skripts. Es existiert nur ein Mitarbeiter mit der Bezeichnung „HR“ in Mitarbeiter.TXT. Ausweis- und Gehaltsinformationen für diesen Mitarbeiter werden hier gedruckt.

Fazit:

Die gebräuchlichsten Verwendungen der bedingten Anweisung jeder Standardprogrammierung werden vom awk-Befehl unterstützt. Wie Sie einzelne und mehrere Bedingungen in awk verwenden können, wird hier an sehr einfachen Beispielen erklärt. Ich hoffe, dass der Lernende nach dem Üben dieser Beispiele in der Lage sein wird, bedingte Anweisungen im awk-Skript richtig zu verwenden.

So installieren Sie League of Legends auf Ubuntu 14.04
Wenn Sie ein Fan von League of Legends sind, dann ist dies eine Gelegenheit für Sie, League of Legends zu testen. Beachten Sie, dass LOL von PlayOnLin...
Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...
Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...