Sintaksė:
Toliau minima keturių sąlyginių sakinių tipų sintaksė.
- jei teiginys
pareiškimas
Teiginys vykdomas, kai sąlyga if grįžta teisinga.
- jei-dar teiginys
pareiškimas-1
Kitas
pareiškimas-2
Teiginys-1 vykdomas, kai sąlyga „if“ yra teisinga, o teiginys-2 - tada, kai grįžta klaidinga.
- if-elseif teiginys
pareiškimas-1
elseif
pareiškimas-2
elseif
pareiškimas-3
… .
Kitas
pareiškimas-n
Šis sąlyginis sakinys naudojamas vykdant teiginį, pagrįstą „multi if if“ sąlyga. Jei pirmoji sąlyga yra klaidinga, ji patikrina antrąją sąlygą. Jei antroji sąlyga yra klaidinga, ji tikrina trečiąją sąlygą ir pan. Jei visos sąlygos bus neteisingos, jis įvykdys kitos dalies teiginį.
- Trinaris (?:) operatorius
Ternary operatorius gali būti naudojamas kaip alternatyva if-else teiginiui. Jei sąlyga teisinga, įvykdys teiginys-1 ir jei klaidinga sąlyga, tada įvykdys teiginį-2.
1 pavyzdys: naudojant paprastą, jei yra awk
Sukurkite tekstinį failą pavadinimu darbuotojas.txt turinį. Tarkime, jūs turite sužinoti darbuotojo, kurio ID yra 11002, skyriaus pavadinimą, amžių ir atlyginimą.
darbuotojas.txt
11001 Pardavimas 45 3000 USD11002 HR 32 1500 USD
11003 Rinkodara 26 1200 USD
11004 HR 25 2500 USD
Paprasta „if“ sąlyga šiame scenarijuje naudojama norint ieškoti ID 11002 pirmajame failo lauke. Jei sąlyga taps teisinga, ji atspausdins kitų atitinkamos eilutės laukų reikšmes, kitaip niekas nebus spausdinama.
$ awk 'jei ($ 1 == "11002")
atspausdinti „Departamento pavadinimas:“, 2 USD, „\ n“;
spausdinti „Amžius:“, 3 USD, „\ n“;
spausdinti „Atlyginimas:“, 4 USD, „\ n“;
' darbuotojas.txt
Išvestis:
Faile yra ID 1102. Taigi atspausdino kitas darbuotojo vertybes.
2 pavyzdys: if-else naudojimas awk
Tarkime, norite atspausdinti darbuotojų, kurių amžius yra mažesnis arba lygus 40, atlyginimų informaciją ir atspausdinti kitų darbuotojų amžiaus informaciją. Šis awk scenarijus gali atlikti šią užduotį. Yra tik vienas darbuotojas darbuotojas.txt byla, kurios amžius yra didesnis nei 40 metų, o visų kitų darbuotojų amžius yra mažesnis nei 40 metų.
$ awk 'jei (3 USD <= 40)
spausdinti „Atlyginimas“, 1 USD, „yra“, 4 USD, \ n "
Kitas
spausdinti „Amžius“, 1 USD, „yra“, 3 USD, „\ n“
' darbuotojas.txt
Išvestis:
Ši išvestis pasirodys paleidus scenarijų.
3 pavyzdys: if-elseif naudojimas awk scenarijuje
Sukurkite tekstinį failą, pavadintą asmuo.txt su tokiu turiniu.
asmuo.txt
JACKSON vyrų verslas„MARTIN“ vyrų tarnybos savininkas
LILY Moterų vadybininkė
ROBINSON Vyras generalinis direktorius
Sukurkite awk failą pavadinimu if_elseif.awk su šiuo kodu norėdami išspausdinti mėgstamą kiekvieno asmens, kurio vardas yra faile, spalvą. Šiai užduočiai atlikti scenarijuje naudojamas sakinys „If-elseif“. Scenarijus nuskaitys pirmąją failo lauko vertę, darbuotojas.txt ir patikrinkite su tam tikra verte. Jei pirmasis jei sąlyga tampa klaidinga, tada ji patikrins antrąją jei būklė ir pan. Kai kuri nors sąlyga taps teisinga, bus priskirta spalvos reikšmė. Jei visos sąlygos tampa klaidingos, tada Nė vienas bus priskirta spalvos vertei. Mėgstamiausia kiekvieno žmogaus spalva atspausdins arba „Nerastas asmuo“ atspausdins, jei nesutaps nė vieno asmens vardas.
if_elseif.awk
vardas = 1 USD;
if (vardas == "JACKSON") spalva = "Mėlyna";
else if (vardas == "MARTIN") spalva = "juoda";
else if (vardas == "LILY") spalva = "Raudona";
else if (vardas == "ROBINSON") spalva = "Balta";
kita spalva = "Nėra";
jei (spalva!= "Nėra") spausdinti "Mėgstamiausia spalva, pavadinimas," yra ", spalva;
kitur spauskite „Nerastas asmuo“;
Vykdykite šią komandą, kad įvykdytumėte failą if_elseif.awk su asmeniu.txt
$ awk -f if_elseif.awk asmuo.txtIšvestis:
Paleidus komandą pasirodys toks išvestis.
4 pavyzdys: trikampio operatoriaus naudojimas awk
Trečiasis laukas asmuo.txt byloje yra kiekvieno asmens profesija. Šis trijų komponentų operatorius nuskaito kiekvieną failo eilutę ir sutampa su trečiąja lauko reikšme „Vadybininkas“. Jei vertė sutampa, ji atspausdins asmens vardą, o kitu atveju atspausdins asmens lytį.
$ awk 'print ($ 3 == "Vadybininkas") ? „Vardas yra„ $ 1 “:„ Lytis yra „$ 2“ asmuo.txtIšvestis:
Vykdant scenarijų bus rodoma ši išvestis. Vienas asmuo, turintis „Vadovo profesiją“ asmuo.txt. Taigi, atspausdinamas vieno asmens vardas, o kitiems - lytis.
5 pavyzdys: kelių sąlygų naudojimas if sakinyje
„Logical OR“ ir „Logical AND“ gali būti naudojamos apibrėžiant kelias sąlygas sąlyginiame „awk“ scenarijaus sakinyje. Šis awk scenarijus nuskaito kiekvieną eilutę darbuotojas.txt ir tikrina amžių bei paskirtį nurodydamas tam tikras vertes. Loginis IR yra naudojamas jei būklė. Kai amžiaus vertė yra didesnė arba lygi 30 ir paskirta „HR“, bus spausdinamas atitinkamas darbuotojo tapatybės dokumentas ir atlyginimas.
$ awk 'if ($ 3> = 30 && $ 2 == "HR") spausdinti "Darbuotojo ID:",1 USD, „ir“, „Atlyginimas:“, 4 USD, „\ n"; 'darbuotojas.txt
Išvestis:
Vykdant scenarijų bus rodoma ši išvestis. Yra tik vienas darbuotojas, turintis „HR“ pavadinimą darbuotojas.txt. Informacija apie šio darbuotojo tapatybę ir atlyginimą spausdinama čia.
Išvada:
Dažniausiai bet kurio standartinio programavimo sąlyginio sakinio naudojimą palaiko komanda awk. Kaip galite naudoti vieną ir kelias sąlygas awk, paaiškinta naudojant čia labai paprastus pavyzdžius. Tikimės, kad, išmokęs šių pavyzdžių, mokinys galės tinkamai naudoti sąlyginį teiginį awk scenarijuje.