Awk

Kako uporabiti pogojni stavek v ukazu awk

Kako uporabiti pogojni stavek v ukazu awk
Pogojni stavek se v katerem koli programskem jeziku uporablja za izvajanje katerega koli stavka, ki temelji na določenem pogoju. Pogojni stavek se izvede na podlagi vrednosti true ali false, če sta stavka if-else in if-elseif uporabljena za zapis pogojnega stavka v programiranje. Awk podpira vse vrste pogojnih stavkov kot drugi programski jeziki.  Kako je mogoče v pogoju awk uporabiti različne pogojne stavke, je prikazano v tej vadnici.

Sintaksa:

Sintaksa štirih pogojnih stavkov je navedena spodaj.

  1. če izjava
če (stanje)
izjavo

Stavek se izvrši, ko pogoj if vrne true.

  1. izjava if-else
če (stanje)
izjava-1

sicer
izjava-2

Stavek-1 se izvrši, če je pogoj if resničen, stavek-2 pa se izvede, če je if false.

  1. izjava if-elseif
če (stanje)
izjava-1

elseif
izjava-2

elseif
izjava-3

.. .
sicer
izjava-n

Ta pogojni stavek se uporablja za izvajanje stavka, ki temelji na več pogojih if. Če je prvi pogoj napačen, preveri drugega. Če je drugi pogoj napačen, preveri tretji pogoj itd. Če vsi pogoji vrnejo false, bo izvedel stavek else part.

  1. Ternarni (?:) operater
(stanje) ? izjava-1: izjava-2

Ternarni operator lahko uporabimo kot alternativo stavku if-else. Če je pogoj true, se bo izjava-1 izvedla in če bo pogoj false, se bo izvedla izjava-2.

Primer-1: Uporaba preprostega, če je v awk

Ustvarite besedilno datoteko z imenom emplyee.txt z naslednjo vsebino. Recimo, da morate ugotoviti ime oddelka, starost in plačo zaposlenega, katerega ID je 11002.

zaposleni.txt

11001 Prodaja 45 $ 3000
11002 HR 32 1500 dolarjev
11003 Trženje 26 1200 dolarjev
11004 HR 25 2500 dolarjev

Preprost pogoj if se v naslednjem skriptu uporablja za iskanje id 11002 v prvem polju datoteke. Če pogoj postane resničen, bo natisnil vrednosti drugih polj ustrezne vrstice, sicer se ne natisne nič.

$ awk '
če ($ 1 == "11002")

natisni "Ime oddelka:", $ 2, "\ n";
natisni "Starost:", $ 3, "\ n";
natisni "Plača:", 4 USD, "\ n";
 

'zaposleni.txt

Izhod:

ID, 1102, obstaja v datoteki. Tako je natisnila druge vrednote zaposlenega.

Primer-2: Uporaba if-else v awk

Recimo, da želite natisniti podatke o plači zaposlenih, katerih starost je manjša ali enaka 40 let, in podatke o starosti za druge zaposlene. To nalogo lahko opravi naslednji skript awk. V. Je samo en uslužbenec zaposleni.txt datoteko, katere starost je več kot 40 let in starost vseh drugih zaposlenih manj kot 40 let.

$ awk '
če (3 USD <= 40)

natisni "Plača", 1 USD, "je", 4 USD, "\ n"

drugače

natisni "Starost", 1 USD, "je", 3 USD, "\ n"

 
'zaposleni.txt

Izhod:

Po zagonu skripta se prikaže naslednji izhod.

Primer-3: Uporaba if-elseif v skriptu awk

Ustvarite besedilno datoteko z imenom oseba.txt z naslednjo vsebino.

oseba.txt

JACKSON moški posel
MARTIN Moški imetnik storitve
LILY ženska vodja
ROBINSON Moški izvršni direktor

Ustvari datoteko awk z imenom if_elseif.awk z naslednjo kodo za tiskanje najljubše barve vsake osebe, katere ime obstaja v datoteki. Za izvajanje te naloge se v skriptu uporablja stavek if-elseif. Skript bo prebral prvo vrednost polja v datoteki, zaposleni.txt in preverite z določeno vrednostjo. Če prvi če pogoj postane false, nato bo preveril drugega če stanje in tako naprej. Če kateri koli pogoj postane resničen, bo dodeljena barvna vrednost. Če potem vsi pogoji postanejo napačni Nobenega bo dodeljena kot vrednost barve. Najljubša barva vsake osebe bo natisnila oz "Ni najdene osebe" se bo natisnilo, če se nobeno ime osebe ne ujema.

if_elseif.awk


ime = 1 $;
if (name == "JACKSON") color = "Blue";
sicer if (name == "MARTIN") color = "Black";
sicer if (name == "LILY") color = "Rdeča";
sicer if (name == "ROBINSON") color = "White";
else color = "Brez";
 
če (barva!= "Brez") print "Najljubša barva", ime, "je", barva;
else natisni "Ni najdene osebe";
 

Zaženite naslednji ukaz, da zaženete datoteko if_elseif.awk z osebo.txt

$ awk -f if_elseif.awk oseba.txt

Izhod:

Po zagonu ukaza se prikaže naslednji izhod.

Primer-4: Uporaba ternarnega operatorja v awk

Tretje polje oseba.txt datoteka vsebuje poklic vsake osebe. Naslednji ternarni operator prebere vsako vrstico datoteke in tretjo vrednost polja ujema z “Manager". Če se vrednost ujema, bo natisnil ime osebe, sicer pa spol osebe.

$ awk 'print ($ 3 == "Upravitelj") ? "Ime je" $ 1: "Spol je" $ 2 'oseba.txt

Izhod:

Po izvedbi skripta se prikaže naslednji izhod. Ena oseba z »Menedžerskim poklicem obstaja v oseba.txt. Torej, ime ene osebe je natisnjeno, spol pa drugi.

Primer-5: Uporaba več pogojev v stavku if

Logično ALI in Logično IN lahko uporabimo za definiranje več pogojev v pogojnem stavku skripta awk. Naslednji skript awk bere vsako vrstico zaposleni.txt in preveri starost in oznako s posebnimi vrednostmi. Logični AND se uporablja v če stanje. Ko je starostna vrednost večja ali enaka 30 in je oznaka »HR«, se natisne ustrezen ID zaposlenega in plača.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") print "ID zaposlenega:",
$ 1, "in", "Plača:", $ 4, "\ n"; 'zaposleni.txt

Izhod:

Po izvedbi skripta se prikaže naslednji izhod. Obstaja samo en uslužbenec z oznako "HR" v jeziku zaposleni.txt. Podatki o identiteti in plači tega zaposlenega so natisnjeni tukaj.

Zaključek:

Najpogostejše uporabe pogojnega stavka katerega koli standardnega programiranja podpira ukaz awk. Tukaj je na zelo preprostih primerih razloženo, kako lahko v awk uporabljate posamezne in več pogojev. Upam, da bo po vadbi teh primerov učenec pravilno uporabil pogojno izjavo v skriptu awk.

S pomočjo gumba X-Mouse Button Control različno prilagodite gumbe miške za različno programsko opremo
Mogoče potrebujete orodje, ki bi lahko spremenilo nadzor miške z vsako aplikacijo, ki jo uporabljate. V tem primeru lahko preizkusite aplikacijo z ime...
Microsoft Sculpt Touch Wireless Mouse Review
Pred kratkim sem prebral o Microsoftov kiparski dotik brezžično miško in se odločil za nakup. Potem ko sem ga nekaj časa uporabljal, sem se odločil, d...
Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...