Awk

Sådan bruges betinget erklæring i awk-kommando

Sådan bruges betinget erklæring i awk-kommando
Den betingede erklæring bruges i ethvert programmeringssprog til at udføre en erklæring baseret på en bestemt tilstand. Den betingede sætning udføres baseret på værdien sand eller falsk, når if-else og if-elseif-sætninger bruges til at skrive den betingede sætning i programmeringen. Awk understøtter alle typer betingede udsagn som andre programmeringssprog.  Hvordan forskellige betingede udsagn kan bruges i awk-kommando vises i denne vejledning.

Syntaks:

Syntaksen for fire typer betingede udsagn er nævnt nedenfor.

  1. hvis erklæring
hvis (betingelse)
udmelding

Erklæringen udføres, når if-betingelsen returnerer til true.

  1. if-else-erklæring
hvis (betingelse)
udsagn-1

andet
udsagn-2

Sætningen-1 udføres, når if-betingelsen er sand, og sætningen-2 udføres, når den returneres falsk.

  1. if-elseif-erklæring
hvis (betingelse)
udsagn-1

elseif
udsagn-2

elseif
udsagn-3

.. .
andet
udsagn-n

Denne betingede erklæring bruges til at udføre en erklæring baseret på multiple if-betingelse. Hvis den første betingelse er falsk, kontrollerer den den anden betingelse. Hvis den anden betingelse er falsk, kontrollerer den den tredje betingelse og så videre. Hvis alle betingelser returneres falske, vil den udføre erklæringen om en anden del.

  1. Ternær (?:) operatør
(tilstand) ? udsagn-1: udsagn-2

Ternær operatør kan bruges som et alternativ til if-else-udsagn. Hvis betingelsen er sand, vil udsagnet-1 udføre, og hvis betingelsen falsk, vil udsagn-2 udføre.

Eksempel 1: Brug af simpelt, hvis det er i awk

Opret en tekstfil med navnet ansat.txt med følgende indhold. Antag at du skal finde ud af afdelingens navn, alder og løn for den medarbejder, hvis id er 11002.

medarbejder.txt

11001 Salg 45 $ 3000
11002 HR 32 $ 1500
11003 Marketing 26 $ 1200
11004 HR 25 $ 2500

En simpel if-betingelse bruges i det følgende script til at søge på id 11002 i det første felt i filen. Hvis betingelsen bliver sand, vil den udskrive værdierne for de andre felter på den tilsvarende linje, ellers vil der ikke blive udskrevet noget.

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

udskriv "Afdelingsnavn:", $ 2, "\ n";
udskriv "Alder:", $ 3, "\ n";
udskriv "Løn:", $ 4, "\ n";
 

'medarbejder.txt

Produktion:

Id, 1102 findes i filen. Så det udskrev medarbejderens andre værdier.

Eksempel 2: Brug if-else i awk

Antag, at du vil udskrive lønoplysningerne for de ansatte, hvis alder er under eller lig med 40, og udskrive aldersoplysningerne for andre medarbejdere. Følgende awk-script kan udføre denne opgave. Der er kun en medarbejder i medarbejder.txt fil, hvis alder er mere end 40, og al anden medarbejders alder er under 40 år.

$ awk '
hvis ($ 3 <= 40)

udskrive "Løn på", $ 1, "er", $ 4, "\ n"

andet

udskriv "Alderen på", $ 1, "er", $ 3, "\ n"

 
'medarbejder.txt

Produktion:

Følgende output vises efter kørsel af scriptet.

Eksempel 3: Brug af if-elseif i awk-script

Opret en tekstfil med navnet person.txt med følgende indhold.

person.txt

JACKSON Mandlig forretning
MARTIN mandlig serviceholder
LILY Kvindelig leder
ROBINSON Mandlig CEO

Opret en awk-fil med navnet if_elseif.akavet med følgende kode for at udskrive favoritfarven for hver person, hvis navn findes i filen. If-elseif-udsagn bruges i scriptet til at udføre denne opgave. Scriptet læser filens første feltværdi, medarbejder.txt og tjek med en bestemt værdi. Hvis den første hvis tilstand bliver falsk, kontrollerer den anden hvis tilstand og så videre. Når en hvis betingelse bliver sand, tildeles en farveværdi. Hvis alle forhold bliver falske, så Ingen vil blive tildelt som farveværdien. Hver persons yndlingsfarve udskrives eller “Ingen person fundet” udskrives, hvis intet personnavn stemmer overens.

if_elseif.akavet


navn = $ 1;
hvis (navn == "JACKSON") color = "Blå";
ellers hvis (navn == "MARTIN") farve = "sort";
ellers hvis (navn == "LILY") farve = "Rød";
ellers hvis (navn == "ROBINSON") color = "Hvid";
else color = "Ingen";
 
hvis (farve!= "Ingen") print "Favoritfarven på", navn, "er", farve;
ellers udskrive "Ingen person fundet";
 

Kør følgende kommando for at udføre filen if_elseif.akavet med person.txt

$ awk -f if_elseif.akavet person.txt

Produktion:

Følgende output vises efter kørsel af kommandoen.

Eksempel 4: Brug af ternær operatør i awk

Det tredje felt i person.txt filen indeholder hver persons erhverv. Den følgende ternære operatør læser hver linje i filen og matcher den tredje feltværdi med “Manager”. Hvis værdien stemmer overens, udskrives personens navn, og ellers udskrives personens køn.

$ awk 'print ($ 3 == "Manager") ? "Navn er" $ 1: "Køn er" $ 2 'person.txt

Produktion:

Følgende output vises efter udførelse af scriptet. En person med ”Manager-erhverv findes i person.txt. Så navnet på en person er trykt, og køn er trykt for andre personer.

Eksempel 5: Brug af flere betingelser i if-sætningen

Logisk ELLER og Logisk OG kan bruges til at definere flere betingelser i den betingede erklæring om awk-script. Følgende awk-script læser hver linje af medarbejder.txt og kontrollerer alder og betegnelse med bestemte værdier. Logisk AND bruges i hvis tilstand. Når aldersværdien er større end eller lig med 30, og betegnelsen er "HR", udskrives det tilsvarende medarbejder-id og løn.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") udskriv "Medarbejder-id:",
$ 1, "og", "Løn:", $ 4, "\ n"; 'medarbejder.txt

Produktion:

Følgende output vises efter udførelse af scriptet. Der er kun én medarbejder med betegnelsen "HR" i medarbejder.txt. Id og lønoplysninger for denne medarbejder er trykt her.

Konklusion:

De mest almindelige anvendelser af den betingede erklæring for enhver standardprogrammering understøttes af awk-kommando. Hvordan du kan bruge enkelte og flere forhold i awk forklares ved hjælp af meget enkle eksempler her. Håber efter at have praktiseret disse eksempler vil eleven være i stand til at bruge betinget erklæring korrekt i awk script.

Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...