Sintakse:
Zemāk ir minēta četru nosacīto paziņojumu veidu sintakse.
- ja paziņojums
paziņojums, apgalvojums
Izraksts tiek izpildīts, ja nosacījums if atgriežas kā patiess.
- ja-cits paziņojums
paziņojums-1
cits
paziņojums-2
Izraksts-1 tiek izpildīts, ja nosacījums if ir patiess, un paziņojums-2 izpildīts, ja atgriežot false.
- if-elseif paziņojums
paziņojums-1
elseif
paziņojums-2
elseif
paziņojums-3
… .
cits
paziņojums-n
Šis nosacītais paziņojums tiek izmantots, lai izpildītu priekšrakstu, kura pamatā ir nosacījums “ja vairāki”. Ja pirmais nosacījums ir nepatiess, tas pārbauda otro nosacījumu. Ja otrais nosacījums ir nepatiess, tas pārbauda trešo nosacījumu utt. Ja visi nosacījumi atgriežas kā nepatiesi, tas izpildīs citas daļas paziņojumu.
- Trīskāršais (?:) operators
Trīskāršo operatoru var izmantot kā alternatīvu if-else paziņojumam. Ja nosacījums patiess, izpildīs paziņojumu-1 un ja nosacījums nepatiesa, tad izpildīs paziņojumu-2.
1. piemērs: izmantojot vienkāršu, ja tas ir awk
Izveidojiet teksta failu ar nosaukumu darbinieks.txt ar šādu saturu. Pieņemsim, ka jums jānoskaidro nodaļas nosaukums, vecums un alga darbiniekam, kura ID ir 11002.
darbinieks.txt
11001 Pārdošana 45 USD 300011002 HR 32 USD 1500
11003 Mārketings 26 1200 USD
11004 HR 25 USD 2500
Vienkāršs nosacījums tiek izmantots šajā skriptā, lai faila pirmajā laukā meklētu ID 11002. Ja nosacījums kļūst patiess, tas izdrukās citu atbilstošās rindas lauku vērtības, pretējā gadījumā nekas netiks izdrukāts.
$ awk 'ja ($ 1 == "11002")
izdrukāt "Departamenta nosaukums:", 2 ASV dolāri, "\ n";
drukāt "Vecums:", 3 ASV dolāri, "\ n";
drukāt "Alga:", 4 ASV dolāri, "\ n";
darbinieks.txt
Izeja:
Failā pastāv ID 1102. Tātad, tas izdrukāja citas darbinieka vērtības.
2. piemērs: if-else izmantošana awk
Pieņemsim, ka vēlaties izdrukāt informāciju par algām darbiniekiem, kuru vecums ir mazāks vai vienāds ar 40, un izdrukāt citu darbinieku vecuma informāciju. Ar šo awk skriptu var izpildīt šo uzdevumu. Ir tikai viens darbinieks darbinieks.txt lietu, kuras vecums ir lielāks par 40 un visu pārējo darbinieku vecums ir mazāks par 40 gadiem.
$ awk 'ja (3 USD <= 40)
drukāt "Alga", $ 1, "is", $ 4, "\ n"
cits
drukāt "Vecums", $ 1, "is", $ 3, "\ n"
darbinieks.txt
Izeja:
Pēc skripta palaišanas parādīsies šāda izeja.
3. piemērs: if-elseif izmantošana awk skriptā
Izveidojiet teksta failu ar nosaukumu persona.txt ar šādu saturu.
persona.txt
JACKSON vīriešu biznessMARTIN vīriešu dienesta īpašnieks
LILY Sieviete Vadītāja
ROBINSON Vīriešu izpilddirektors
Izveidojiet awk failu ar nosaukumu if_elseif.awk ar šādu kodu, lai izdrukātu katras personas, kuras vārds atrodas failā, iecienītāko krāsu. Lai izpildītu šo uzdevumu, skriptā tiek izmantots priekšraksts If-elseif. Skripts nolasīs faila pirmā lauka vērtību, darbinieks.txt un pārbaudiet ar noteiktu vērtību. Ja pirmais ja stāvoklis kļūst nepatiess, tad tas pārbaudīs otro ja stāvoklis un tā tālāk. Ja kāds no nosacījumiem kļūst patiess, tiks piešķirta krāsas vērtība. Ja visi nosacījumi kļūst nepatiesi, tad Nav tiks piešķirta kā krāsas vērtība. Katras personas iecienītākā krāsa izdrukās vai “Nav atrasts neviens cilvēks” izdrukās, ja nevienas personas vārds neatbilst.
if_elseif.awk
nosaukums = $ 1;
ja (nosaukums == "JACKSON") krāsa = "zila";
else if (name == "MARTIN") color = "Black";
cits, ja (nosaukums == "LILY") krāsa = "sarkana";
else if (name == "ROBINSON") color = "White";
else color = "Nav";
ja (krāsa!= "Nav") print "Iecienītākā krāsa", nosaukums, "ir", krāsa;
citādi izdrukājiet "Nav atrasts neviens cilvēks";
Palaidiet šo komandu, lai izpildītu failu if_elseif.awk ar personu.txt
$ awk -f if_elseif.awk persona.txtIzeja:
Pēc komandas palaišanas parādīsies šāda izeja.
4. piemērs: trīskāršā operatora izmantošana awk
Trešais lauks persona.txt failā ir katras personas profesija. Šis trīslīmeņu operators nolasa katru faila rindu un saskaņo trešo lauka vērtību ar “Vadītājs”. Ja vērtība sakrīt, tā drukās personas vārdu un pretējā gadījumā izdrukās personas dzimumu.
$ awk 'print ($ 3 == "Pārvaldnieks") ? "Vārds ir" $ 1: "Dzimums ir" $ 2 "persona.txtIzeja:
Pēc skripta izpildes parādīsies šāda izeja. Viena persona ar “Vadītāja profesiju pastāv persona.txt. Tātad tiek izdrukāts vienas personas vārds, bet citām personām - dzimums.
5. piemērs: vairāku nosacījumu izmantošana if paziņojumā
Loģisko VAI un Loģisko UN var izmantot, lai definētu vairākus nosacījumus awk skripta nosacītajā paziņojumā. Šis awk skripts nolasa katru rindiņu darbinieks.txt un pārbauda vecumu un apzīmējumu ar īpašām vērtībām. Loģiskais UN tiek izmantots ja stāvoklī. Kad vecuma vērtība ir lielāka vai vienāda ar 30 un apzīmējums ir “HR”, tiks drukāts atbilstošais darbinieka ID un alga.
$ awk 'if ($ 3> = 30 && $ 2 == "HR") print "Darbinieka ID:",$ 1, "un", "Alga:", $ 4, "\ n"; 'darbinieks.txt
Izeja:
Pēc skripta izpildes parādīsies šāda izeja. Ir tikai viens darbinieks ar apzīmējumu “HR” darbinieks.txt. Informācija par šī darbinieka ID un algu tiek izdrukāta šeit.
Secinājums:
Jebkura standarta programmēšanas nosacītā paziņojuma visbiežāk izmantotie veidi tiek atbalstīti ar komandu awk. Kā jūs varat izmantot atsevišķus un vairākus nosacījumus awk, ir izskaidrots, izmantojot šeit ļoti vienkāršus piemērus. Ceru, ka pēc šo piemēru izmantošanas izglītojamais varēs pareizi izmantot nosacīto paziņojumu awk skriptā.