Example -1: Mainīgā definēšana un drukāšana
'awk' mainīgā definēšanai izmanto opciju '-v'. Šajā piemērā myvars mainīgais ir definēts komandā 'awk', lai saglabātu vērtību, “AWK mainīgais” kas tiek izdrukāts vēlāk. Palaidiet šādu komandu no termināļa, lai pārbaudītu izvadi.
$ atbalss | awk -v myvar = 'AWK mainīgais' 'print myvar'Izeja:
2. piemērs: apvalka mainīgā izmantošana awk ar vienu un divkāršu pēdiņu
Piemērs parāda, kā čaulas mainīgo var izmantot komandu 'awk'. Lūk, čaulas mainīgais, myvars tiek deklarēta ar vērtību, “Linux padoms” pirmajā komandā. Simbols '$' tiek izmantots kopā ar čaulas mainīgā nosaukumu, lai nolasītu vērtību. Otra komanda nolasa mainīgo, $ myval ar vienu pēdiņu (') un trešajā komandā teikumā' awk 'tiek lasīts mainīgais $ myvar ar dubultu pēdiņu (“).
$ myvar = "Linux padoms"$ atbalss | awk -v awkvar = '$ myvar' 'drukāt awkvar;
$ atbalss | awk -v awkvar = "$ myvar" 'drukāt awkvar;
Izeja:
Izvade parāda, ka $ myvar vērtību nevar nolasīt, ja tā ir pievienota ar vienu pēdiņu (') un izeja ir $ myvar. Vērtība $ myvar tiek drukāts, kad tas ir pievienots ar divkāršu pēdiņu (“).
3. piemērs: ARGC mainīgā lasīšana awk
ARGC mainīgo izmanto, lai saskaitītu komandrindas argumentu kopējo skaitu. Trīs komandrindas argumentu mainīgie (t1, t2, t3) tiek nodoti šajā awk skriptā. Šeit kopējais argumentu skaits ar skriptu ir 4. Palaidiet skriptu no termināla.
$ awk 'BEGIN print "Kopā argumenti =", ARGC' t1 t2 t3Izeja:
Pēc skripta palaišanas parādīsies šāda izeja.
4. piemērs: faila satura lasīšana pēc argumentu mainīgajiem
Izveidojiet teksta failu ar nosaukumu klientu.txt ar šādu saturu, lai praktizētu šo piemēru. Šeit katrs faila lauks tiek atdalīts ar vienu cilni telpa.
klientu.txt
ID nosaukums103847 Jānis Mišels
209485 Vatsons
974732 Mira Hossaina
Awk komanda var nolasīt katru lauku no jebkura teksta faila pēc argumentu mainīgajiem. Vietnē ir divi lauki klientu.txt failu. Tie ir ID un vārds. Šis skripts izdrukās šos divus laukus pēc argumentu mainīgajiem, 1 USD un 2 USD atdalot divus cilni atstarpes. Palaidiet skriptu no termināla.
$ kaķu klients.txt$ kaķu klients.txt | awk 'print $ 1 "\ t \ t" $ 2;'
Izeja:
Pēc iepriekš minēto komandu izpildīšanas parādīsies šāda izeja.
5. piemērs: izmantojot iebūvēto mainīgo, FS un lauka atdalītāja opciju ar komandu awk
FS mainīgais tiek izmantots komandā awk kā lauka atdalītājs. Vieta tiek izmantota kā FS noklusējuma vērtība. Šī komanda nolasīs failu klientu.txt izmantojot atstarpi kā lauka atdalītāju un izdrukājiet faila saturu. Palaidiet komandu no termināla.
$ awk FS klients.txtIzeja:
Pēc skripta palaišanas parādīsies šāda izeja.
Awk komanda var izmantot citas rakstzīmes kā lauka atdalītāju, izmantojot opciju '-F'. Izveidojiet teksta failu ar nosaukumu produktu.txt ar šādu saturu, kur “:” tiek izmantots kā lauku atdalītājs.
produktu.txt
101: kūka: 30 ASV dolāri102: Zīmulis: 5 ASV dolāri
103: ziepes: 3 ASV dolāri
104: Šampūns: 10 ASV dolāri
Failā ir trīs lauki, produktu.txt kas satur produkta ID, nosaukumu un cenu. Ar šādu awk komandu tiks izdrukāts tikai katras rindas otrais lauks. Palaidiet komandas no termināla.
$ kaķu produkts.txt$ awk -F ':' 'print $ 2' produkts.txt
Izeja:
Šeit pirmā komanda izdrukāja produktu.txt un otrā komanda izdrukāja tikai faila otro lauku.
6. piemērs: izmantojot iebūvēto mainīgo, NR ar komandu awk
NR mainīgais tiek izmantots komandā awk, lai saskaitītu faila ierakstu vai rindu kopējo skaitu. Izveidojiet teksta failu ar nosaukumu students.txt lai pārbaudītu šī mainīgā funkciju.
students.txt
Nosaukums partijas semestrisJāņa 20. nodaļa 3
Mira 22 1
Ella 18
Charle 15 8
Šis awk skripts izdrukās pirmās trīs rindas produktu.txt failu. Šeit tiek pievienots nosacījums, izmantojot mainīgo NR. Komanda izdrukās tās rindas, kur NR vērtība ir mazāka par 4. Palaidiet skriptu no termināla.
Izeja:
Pēc skripta palaišanas parādīsies šāda izeja.
$ kaķu students.txt | awk 'NR < 4'
7. piemērs: izmantojot iebūvēto mainīgo, NF ar komandu awk
NF mainīgais tiek izmantots komandā awk, lai saskaitītu kopējo lauku skaitu katrā faila rindā. Failam tiek izmantots šāds awk skripts, students.txt kas ir izveidots iepriekšējā piemērā. Skripts izdrukās šīs rindiņas no students.txt fails, kurā kopējais lauku skaits ir mazāks par 3. Palaidiet komandu no termināla.
$ kaķu students.txt | awk 'NF < 3'Izeja:
Failā ir tikai viena rindiņa, kur kopējais lauku skaits ir mazāks par 3 un tiek izdrukāts kā izvade.
8. piemērs: izmantojot iebūvētu mainīgo, OFS ar komandu awk
OFS mainīgo izmanto komandā awk, lai izvadā pievienotu izvades lauka atdalītāju. produktu.txt fails tiek izmantots šajā piemērā, lai parādītu OFS mainīgā izmantošanu. ':' tiek izmantots kā lauka atdalītājs produktā.txt fails. Šis awk skripts kā OFS vērtību izmantoja '->', un faila otrais un trešais lauks tiks drukāts, pievienojot šo atdalītāju. Palaidiet komandas no termināla.
$ kaķu produkts.txt$ awk -F ':' 'BEGIN OFS = "->"; print $ 2, $ 3;' produkts.txt
Izeja:
Pēc komandu izpildīšanas tiks izdrukāta šāda izeja.
Secinājums:
Šajā apmācībā ir mēģināts izskaidrot visbiežāk lietotos awk mainīgo lielumus. Ceru, ka pēc šīs apmācības praktizēšanas lasītājs skriptā varēs pareizi izmantot awk mainīgos.