Hvordan bruke betinget uttalelse i AWK -kommandoen

Hvordan bruke betinget uttalelse i AWK -kommandoen
Den betingede uttalelsen brukes på ethvert programmeringsspråk for å utføre enhver uttalelse basert på en bestemt tilstand. Den betingede uttalelsen utføres basert på verdien som er sant eller usant når IF-Else og IF-Elseif-uttalelser brukes til å skrive den betingede uttalelsen i programmeringen. AWK støtter alle typer betingede uttalelser som andre programmeringsspråk. Hvordan forskjellige betingede utsagn kan brukes i AWK -kommandoen vises i denne opplæringen.

Syntaks:

Syntaksen for fire typer betingede utsagn er nevnt nedenfor.

  1. Hvis uttalelse
if (tilstand)
uttalelse

Uttalelsen utføres når IF -tilstanden kommer tilbake.

  1. If-Else-uttalelse
if (tilstand)
Uttalelse-1

ellers
Uttalelse-2

Uttalelsen-1 utføres når IF-tilstanden er sann og uttalelsen-2 utføres når hvis return.

  1. If-Elseif-uttalelse
if (tilstand)
Uttalelse-1

eller hvis
Uttalelse-2

eller hvis
Uttalelse-3

.. .
ellers
uttalelse-n

Denne betingede uttalelsen brukes til å utføre en uttalelse basert på flere IF -tilstand. Hvis den første tilstanden er falsk, sjekker den den andre tilstanden. Hvis den andre tilstanden er falsk, sjekker den den tredje tilstanden og så videre. Hvis alle forholdene kommer tilbake falske, vil den utføre uttalelsen fra ellers del.

  1. Ternær (?:) Operatør
(betingelse) ? Uttalelse-1: Uttalelse-2

Ternær operatør kan brukes som et alternativ til if-ests-uttalelse. Hvis tilstanden er sant, vil uttalelsen 1 utføre, og hvis tilstanden er falsk, vil uttalelse-2 utføre.

Eksempel-1: Bruke enkelt hvis i AWK

Lag en tekstfil som heter Emplyee.tekst Med følgende innhold. Anta at du må finne ut avdelingsnavnet, alderen og lønnen til den ansatte hvis ID er 11002.

ansatt.tekst

11001 Salg 45 $ 3000
11002 HR 32 $ 1500
11003 Markedsføring 26 $ 1200
11004 HR 25 $ 2500

En enkel hvis tilstand brukes i følgende skript for å søke i ID 11002 i det første feltet i filen. Hvis tilstanden blir sann, vil den skrive ut verdiene til de andre feltene på den tilsvarende linjen, ellers blir ingenting skrevet ut.

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

Skriv ut "Avdelingsnavn:", $ 2, "\ n";
skriv ut "alder:", $ 3, "\ n";
skriv ut "Lønn:", $ 4, "\ n";

'Ansatt.tekst

Produksjon:

IDen, 1102 eksisterer i filen. Så det trykket de andre verdiene til den ansatte.

Eksempel-2: Bruke IF-Else i AWK

Anta at du vil skrive ut lønnsinformasjonen til de ansatte hvis alder er mindre enn eller lik 40 og skrive ut aldersinformasjonen for andre ansatte. Følgende AWK -skript kan gjøre denne oppgaven. Det er bare en ansatt i ansatt.tekst fil hvis alder er mer enn 40 og all andre ansattes alder er mindre enn 40.

$ awk '
if ($ 3 <= 40)

Skriv ut "lønnen til", $ 1, "er", $ 4, "\ n"

ellers

Skriv ut "The Age of", $ 1, "er", $ 3, "\ n"

'Ansatt.tekst

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet.

Eksempel-3: Bruke If-Elseif i AWK-skript

Lag en tekstfil som heter Person.txt med følgende innhold.

person.tekst

Jackson mannlig virksomhet
Martin Male Service Holder
Lily kvinnelig manager
Robinson mannlige administrerende direktør

Lag en AWK -fil som heter if_elseif.awk Med følgende kode for å skrive ut favorittfargen til hver person som har det finnes i filen. If-elvesiferklæring brukes i skriptet for å gjøre denne oppgaven. Skriptet vil lese den første feltverdien til filen, ansatt.tekst og ta kontakt med en bestemt verdi. Hvis den første hvis Tilstanden blir falsk da vil den sjekke det andre hvis tilstand og så videre. Når noen hvis tilstand blir sann, vil en fargeverdi bli tildelt. Hvis alle forhold blir falske da Ingen vil bli tildelt som fargeverdi. Favorittfargen til hver person vil skrive ut eller “Ingen personer funnet” vil skrive ut hvis ingen personnavn samsvarer.

if_elseif.awk


navn = $ 1;
if (name == "Jackson") color = "blå";
ellers if (name == "martin") color = "svart";
ellers if (name == "Lily") farge = "rød";
ellers hvis (navn == "Robinson") farge = "hvit";
annet farge = "ingen";
hvis (farge!= "Ingen") Skriv ut "favorittfargen på", navn, "er", farge;
ellers skriv ut "Ingen personer funnet";

Kjør følgende kommando for å utføre filen IF_ELSEIF.awk med person.tekst

$ awk -f if_elseif.awk person.tekst

Produksjon:

Følgende utgang vises etter å ha kjørt kommandoen.

Eksempel-4: Bruke ternær operatør i AWK

Det tredje feltet av person.tekst Filen inneholder yrket til hver person. Følgende ternære operatør leser hver linje i filen og samsvarer med den tredje feltverdien med "sjef”. Hvis verdien samsvarer, vil den skrive ut navnet på personen, og ellers vil den skrive ut kjønnet til personen.

$ awk 'print ($ 3 == "manager") ? "Navn er" $ 1: "kjønn er" $ 2 'person.tekst

Produksjon:

Følgende utgang vises etter å ha utført skriptet. En person med "lederyrke eksisterer i person.tekst. Så navnet på en person er trykt og kjønn er trykt for andre personer.

Eksempel-5: Bruke flere forhold i IF-uttalelse

Logisk eller og logisk og kan brukes til å definere flere forhold i betinget uttalelse av AWK -skript. Følgende AWK -skript leser hver linje av ansatt.tekst og sjekker alder og betegnelse med bestemte verdier. Logisk og brukes i hvis betingelse. Når aldersverdien er større enn eller lik 30 og betegnelsen er "HR", vil den tilsvarende ansattes ID og lønn skrives ut.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") Skriv ut "Ansatt ID:",
$ 1, "og", "lønn:", $ 4, "\ n"; 'ansatt.tekst

Produksjon:

Følgende utgang vises etter å ha utført skriptet. Det er bare en ansatt som eksisterer med betegnelsen, "HR" i ansatt.tekst. ID og lønnsinformasjon for denne ansatte er skrevet ut her.

Konklusjon:

Vanlige bruksområder for betinget uttalelse av en standard programmering støttes av AWK -kommandoen. Hvordan du kan bruke enkelt- og flere forhold i AWK forklares ved å bruke veldig enkle eksempler her. Håper etter å ha praktisert disse eksemplene, vil eleven kunne bruke betinget uttalelse riktig i AWK -skript.