Awk

Kā izmantot nosacījuma paziņojumu komandā awk

Kā izmantot nosacījuma paziņojumu komandā awk
Nosacījuma nosacījums tiek izmantots jebkurā programmēšanas valodā, lai izpildītu jebkuru paziņojumu, pamatojoties uz noteiktu nosacījumu. Nosacījuma priekšraksts tiek izpildīts, pamatojoties uz vērtību true vai false, ja if-else un if-elseif apgalvojumi tiek izmantoti, lai programmēšanas nosacījumu uzrakstītu. Awk atbalsta visu veidu nosacījumus, tāpat kā citas programmēšanas valodas.  Kā dažādi nosacītie paziņojumi var tikt izmantoti komandā awk, ir parādīts šajā apmācībā.

Sintakse:

Zemāk ir minēta četru nosacīto paziņojumu veidu sintakse.

  1. ja paziņojums
ja (nosacījums)
paziņojums, apgalvojums

Izraksts tiek izpildīts, ja nosacījums if atgriežas kā patiess.

  1. ja-cits paziņojums
ja (nosacījums)
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.

  1. if-elseif paziņojums
ja (nosacījums)
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.

  1. Trīskāršais (?:) operators
(nosacījums) ? paziņojums-1: paziņojums-2

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 3000
11002 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 bizness
MARTIN 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.txt

Izeja:

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.txt

Izeja:

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ā.

Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...
Noderīgi rīki Linux spēlētājiem
Ja jums patīk spēlēt spēles Linux, iespējams, ka spēļu pieredzes uzlabošanai, iespējams, esat izmantojis tādas lietotnes un utilītprogrammas kā Wine, ...
HD Remastered spēles operētājsistēmai Linux, kurām nekad agrāk nebija Linux laidiena
Daudzi spēļu izstrādātāji un izdevēji nāk klajā ar veco spēļu HD remaster, lai pagarinātu franšīzes darbības laiku. Lūdzu, faniem, kas pieprasa saderī...