Sintaksa:
Sintaksa za četiri vrste uvjetnih izjava spomenuta je u nastavku.
- ako izjava
izjava
Izraz se izvršava kada uvjet if vrati true.
- if-else izjava
izjava-1
drugo
izjava-2
Izraz-1 izvršava se kada je uvjet if istinit, a izraz-2 izvršava se ako je return false.
- if-elseif izjava
izjava-1
elseif
izjava-2
elseif
izjava-3
.. .
drugo
izjava-n
Ovaj uvjetni izraz koristi se za izvršavanje izraza na temelju višestrukih uvjeta if. Ako je prvi uvjet netačan, provjerava drugi uvjet. Ako je drugi uvjet netačan, provjerava treći uvjet i tako dalje. Ako se svi uvjeti vrate false, izvršit će naredbu else part.
- Ternarni (?:) operater
Ternarni operator može se koristiti kao alternativa if-else izjavi. Ako je uvjet istinit, izvršit će se naredba-1, a ako je uvjet netačan, izvršit će se iskaz-2.
Primjer-1: Upotreba jednostavnog ako je u awk-u
Stvorite tekstualnu datoteku s imenom emplyee.txt sa sljedećim sadržajem. Pretpostavimo da morate saznati naziv odjela, dob i plaću zaposlenika čiji je id 11002.
zaposlenik.txt
11001 Prodaja 45 $ 300011002 HR 32 1500 USD
11003 Marketing 26 1200 dolara
11004 HR 25 2500 USD
Jednostavan uvjet if koristi se u sljedećoj skripti za pretraživanje id 11002 u prvom polju datoteke. Ako uvjet postane istinit, ispisat će se vrijednosti ostalih polja odgovarajućeg retka, inače se neće ispisati ništa.
$ awk 'ako ($ 1 == "11002")
ispis "Naziv odjela:", $ 2, "\ n";
ispis "Dob:", 3 dolara, "\ n";
ispis "Plaća:", 4 USD, "\ n";
'zaposlenik.txt
Izlaz:
ID, 1102 postoji u datoteci. Dakle, ispisane su ostale vrijednosti zaposlenika.
Primjer-2: Korištenje if-else u awk-u
Pretpostavimo da želite ispisati podatke o plaći zaposlenika čija je dob manja ili jednaka 40 i ispisati podatke o starosti ostalih zaposlenika. Sljedeći awk skript može obaviti ovaj zadatak. U. Postoji samo jedan zaposlenik zaposlenik.txt dosje čija je starost veća od 40, a starost svih ostalih zaposlenika manja od 40 godina.
$ awk 'ako ($ 3 <= 40)
ispis "Plaća od", 1 USD, "je", 4 USD, "\ n"
drugo
print "Dob od", $ 1, "is", $ 3, "\ n"
'zaposlenik.txt
Izlaz:
Sljedeći će se izlaz pojaviti nakon pokretanja skripte.
Primjer-3: Korištenje if-elseif u skripti awk
Stvorite tekstualnu datoteku s imenom osoba.txt sa sljedećim sadržajem.
osoba.txt
JACKSON muško poslovanjeMARTIN muški nositelj usluge
LILY žena menadžer
ROBINSON muški izvršni direktor
Stvorite awk datoteku s imenom ako_elseif.awk sa sljedećim kodom za ispis omiljene boje svake osobe čije ime postoji u datoteci. Izvještaj if-elseif koristi se u skripti za izvršavanje ovog zadatka. Skripta će pročitati vrijednost prvog polja datoteke, zaposlenik.txt i provjerite s određenom vrijednošću. Ako prvi ako uvjet postaje netačan tada će provjeriti drugi ako stanje i tako dalje. Ako bilo koji uvjet postane istinit, dodijelit će se vrijednost boje. Ako tada svi uvjeti postanu lažni Nijedna bit će dodijeljena kao vrijednost boje. Omiljena boja svake osobe ispisat će se ili "Nije pronađena nijedna osoba" ispisat će se ako se ne podudara nijedno ime osobe.
ako_elseif.awk
ime = 1 USD;
if (name == "JACKSON") color = "Plavo";
inače if (name == "MARTIN") color = "Black";
inače if (name == "LILY") color = "Red";
inače if (name == "ROBINSON") color = "White";
else boja = "Ništa";
ako (boja!= "None") print "Omiljena boja", name, "is", color;
else print "Nije pronađena nijedna osoba";
Pokrenite sljedeću naredbu za izvršavanje datoteke if_elseif.awk s osobom.txt
$ awk -f ako_elseif.awk osoba.txtIzlaz:
Sljedeći će se izlaz pojaviti nakon pokretanja naredbe.
Primjer-4: Korištenje ternarnog operatora u awk
Treće polje osoba.txt datoteka sadrži zanimanje svake osobe. Sljedeći ternarni operator čita svaki redak datoteke i podudara vrijednost trećeg polja s “Menadžer". Ako se vrijednost podudara, ispisat će ime osobe, a u suprotnom ispisat će se spol osobe.
$ awk 'ispis ($ 3 == "Upravitelj") ? "Ime je" $ 1: "Spol je" $ 2 'osoba.txtIzlaz:
Sljedeći će se izlaz pojaviti nakon izvršavanja skripte. Jedna osoba s „Menadžerskom profesijom postoji u osoba.txt. Dakle, ispisuje se ime jedne osobe, a za druge osobe rod.
Primjer-5: Korištenje više uvjeta u naredbi if
Logičko ILI i Logičko I mogu se koristiti za definiranje više uvjeta u uvjetnom izrazu skripte awk. Sljedeća skripta awk čita svaki redak zaposlenik.txt te provjerava dob i oznaku s određenim vrijednostima. Logički AND koristi se u ako stanje. Kada je dobna vrijednost veća ili jednaka 30 i oznaka je "HR", ispisat će se odgovarajući ID zaposlenika i plaća.
$ awk 'if ($ 3> = 30 && $ 2 == "HR") print "ID zaposlenika:",$ 1, "i", "Plaća:", $ 4, "\ n"; 'zaposlenik.txt
Izlaz:
Sljedeći će se izlaz pojaviti nakon izvršavanja skripte. Postoji samo jedan zaposlenik s oznakom "HR" u zaposlenik.txt. Ovdje se ispisuju podaci o identitetu i plaći ovog zaposlenika.
Zaključak:
Najobičnija upotreba uvjetnog izraza bilo kojeg standardnog programiranja podržana je naredbom awk. Ovdje možete objasniti kako možete koristiti pojedinačne i višestruke uvjete u awk-u, koristeći vrlo jednostavne primjere. Nadam se da će nakon vježbanja ovih primjera učenik moći pravilno koristiti uvjetnu izjavu u awk skripti.