Syntax:
Die Syntax für vier Arten von bedingten Aussagen wird unten erwähnt.
if (Zustand)
Stellungnahme
Die Anweisung wird ausgeführt, wenn die IF -Bedingung wahr zurückgibt.
if (Zustand)
Erklärung 1
anders
Erklärung 2
Die Anweisung-1 führt aus, wenn die IF-Bedingung wahr ist, und die Anweisung 2 wird ausgeführt, wenn wenn Sie false zurückgeben.
if (Zustand)
Erklärung 1
elseif
Erklärung 2
elseif
Aussage-3
… .
anders
Erklärung-N
Diese bedingte Anweisung wird zur Ausführung einer Anweisung basierend auf mehreren If -Bedingungen verwendet. Wenn die erste Bedingung falsch ist, überprüft sie den zweiten Zustand. Wenn die zweite Bedingung falsch ist, überprüft sie den dritten Zustand und so weiter. Wenn alle Bedingungen false zurückgeben, wird die Anweisung des anderen Teils ausgeführt.
(Zustand) ? Erklärung 1: Erklärung 2
Der ternäre Operator kann als Alternative zur IF-ELSE-Anweisung verwendet werden. Wenn die Bedingung der Anweisung 1 ausführt und wenn die Bedingung falsch ist, wird Anweisung-2 ausgeführt.
Beispiel 1: Einfach if in awk verwenden
Erstellen Sie eine Textdatei mit dem Namen Emplyee.txt mit dem folgenden Inhalt. Angenommen, Sie müssen den Namen, das Alter und das Gehalt des Arbeitnehmers der Abteilung herausfinden, dessen ID 11002 ist.
Mitarbeiter.txt
11001 Umsatz 45 $ 3000
11002 Std. 32 $ 1500
11003 Marketing 26 $ 1200
11004 HR 25 $ 2500
Eine einfache Bedingung wird im folgenden Skript verwendet, um die ID 11002 im ersten Feld der Datei zu durchsuchen. Wenn die Bedingung wahr wird, druckt sie die Werte der anderen Felder der entsprechenden Zeile, sonst wird nichts gedruckt.
$ awk '
if ($ 1 == "11002")
Druck "Abteilungsname:", $ 2, "\ n";
Druck "Alter:", $ 3, "\ n";
Druck "Gehalt:", $ 4, "\ n";
' Mitarbeiter.txt
Ausgang:
Die ID 1102 existiert in der Datei. Also druckte es die anderen Werte des Mitarbeiters.
Beispiel 2: Verwenden Sie If-ELSE in awk
Nehmen wir an, Sie möchten die Gehaltsinformationen der Mitarbeiter, deren Alter kleiner oder gleich 40 ist, drucken und die Altersinformationen für andere Mitarbeiter drucken. Das folgende awk -Skript kann diese Aufgabe erledigen. Es gibt nur einen Mitarbeiter in Mitarbeiter.txt Datei, deren Alter mehr als 40 beträgt und das Alter des anderen Mitarbeiter ist weniger als 40 Jahre alt.
$ awk '
if ($ 3 <= 40)
Druck "Das Gehalt von", $ 1, "ist", $ 4, "\ n"
anders
Druck "The Age of", $ 1, "ist", $ 3, "\ n"
' Mitarbeiter.txt
Ausgang:
Die folgende Ausgabe wird nach dem Ausführen des Skripts angezeigt.
Beispiel-3: Verwenden Sie IF-ELSEIF im awk-Skript
Erstellen Sie eine Textdatei namens Person.TXT mit dem folgenden Inhalt.
Person.txt
Jackson männliches Geschäft
Martin männlicher Serviceinhaber
Lily weibliche Managerin
Robinson männlicher 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 existiert. IF-ELSEIF-Anweisung wird im Skript verwendet, um diese Aufgabe zu erledigen. Das Skript liest den ersten Feldwert der Datei, Mitarbeiter.txt und erkundigen Sie sich mit einem bestimmten Wert. Wenn der erste Wenn Die Bedingung wird falsch, dann überprüft er die zweite Wenn Zustand und so weiter. Wenn eine Bedingung wahr wird, wird ein Farbwert zugewiesen. Wenn alle Bedingungen falsch werden Keiner wird als Farbwert zugewiesen. Die Lieblingsfarbe jeder Person druckt oder druckt oder "Keine Person gefunden" wird drucken, wenn kein Personname ü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";
sonst color = "keine";
if (Farbe!= "Keine") Drucken "die Lieblingsfarbe von", Name ",", ", Farbe;
sonst drucken "keine Person gefunden";
Führen Sie den folgenden Befehl aus, um die Datei mit IF_ELSIF auszuführen.awk mit Person.txt
$ awk -f if_elseif.awk Person.txt
Ausgang:
Die folgende Ausgabe wird nach dem Ausführen des Befehls angezeigt.
Beispiel-4: Verwenden Sie den ternären Operator in awk
Das dritte Feld von Person.txt Die Datei enthält den Beruf jeder Person. Der folgende ternäre Operator liest jede Zeile der Datei und stimmt mit dem dritten Feldwert mit “übereinManager”. Wenn der Wert übereinstimmt, druckt er den Namen der Person und sonst das Geschlecht der Person aus.
$ awk 'print ($ 3 == "Manager") ? "Name ist" $ 1: "Geschlecht ist" $ 2 'Person.txt
Ausgang:
Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt. Eine Person mit „Manager -Beruf existiert in der Person.txt. Der Name einer Person wird also gedruckt und das Geschlecht für andere Personen gedruckt.
Beispiel-5: Verwenden Sie mehrere Bedingungen in if Anweisung
Logisch oder logisch und kann 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 überprüft das Alter und die Bezeichnung mit bestimmten Werten. Logisch und wird in der verwendet Wenn Zustand. Wenn der Alterswert größer oder gleich 30 ist und die Bezeichnung „HR“ ist, wird die entsprechende Mitarbeiter -ID und das Gehalt drucken.
$ awk 'if ($ 3> = 30 && $ 2 == "HR") Drucken "Mitarbeiter -ID:",
$ 1, und "," Gehalt: ", $ 4," \ n "; 'Mitarbeiter.txt
Ausgang:
Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt. Es gibt nur einen Mitarbeiter mit der Bezeichnung „HR“ in Mitarbeiter.txt. ID- und Gehaltsinformationen für diesen Mitarbeiter werden hier gedruckt.
Die häufigsten Verwendungen der bedingten Aussage für alle Standardprogramme werden vom Befehl awk unterstützt. Wie Sie einzelne und mehrere Bedingungen in awk verwenden können. Hoffnung nach dem Üben dieser Beispiele Der Lernende kann eine bedingte Anweisung in awk Skript ordnungsgemäß verwenden.