Imiyalo, i-syntax, nezibonelo
Umyalo we-awk kuyindlela enamandla yokucubungula noma ukuhlaziya amafayela wombhalo-ikakhulukazi, amafayela wedatha ahlelwe imigqa (imigqa) namakholomu.
Imiyalo ye- awk elula ingasebenza kusukela kumlayini wokulayela . Imisebenzi eyinkimbinkimbi kufanele ibhalwe njengamahlelo awk (okuthiwa ama-awk scripts) kufayili.
Ifomethi eyisisekelo yomyalo we-awk ibonakala kanje:
I-awk 'pattern {action}' yokufaka-ifayela> okuphumayo-ifayelaLokhu kusho ukuthi: thatha umugqa ngamunye wefayela lokufaka; uma umugqa uqukethe iphethini sebenzisa isenzo emgqeni bese ubhala umphumela ophumela ekuphumeni-ifayela. Uma iphethini ishiywe, isenzo sisebenza kuwo wonke umugqa. Ngokwesibonelo:
Awk '{phrinta $ 5}' table1.txt> output1.txtLesi sitatimende sithatha isici sekholomu yesihlanu emgqeni ngamunye bese sibhala njengomugqa efayeleni yokukhipha "output.txt". Ukuguquguquka '$ 4' kubhekisela kukholomu yesibili. Ngokufanayo ungakwazi ukufinyelela ikholomu yokuqala, yesibili, neyesithathu, nge $ 1, $ 2, $ 3, njll. Amakholomu okuzenzakalelayo acatshangwa ukuba ahlukaniswe izikhala noma amathebhu (okuthiwa isikhala esimhlophe). Ngakho, uma ifayela lokufaka "i-table1.txt" liqukethe la migqa:
1, Justin Timberlake, Title 545, Price $ 7.30 2, Taylor Swift, Isihloko 723, Intengo $ 7.90 3, uMick Jagger, Isihloko 610, Intengo $ 7.90 4, Lady Gaga, Isihloko 118, Intengo $ 7.30 5, Johnny Cash, Isihloko 482, Intengo $ 6.50 6, u-Elvis Presley, Isihloko 335, Intengo ka $ 7.30 7, uJohn Lennon, Isihloko 271, Intengo $ 7.90 8, uMichael Jackson, Isihloko 373, Intengo $ 5.50Khona-ke umyalo ubungabhala imigqa elandelayo efayeleni yokukhipha "output1.txt":
545, 723, 610, 118, 482, 335, 271, 373,Uma i-separator yekholomu yinto enye ngaphandle kwezikhala noma amathebhu, njenge-comma, ungacacisa ukuthi esitatimendeni sama-awk kanje:
awk -F, '{phrinta $ 3}' table1.txt> output1.txtLokhu kuzokhetha isici kusuka kukholomu 3 komugqa ngamunye uma amakholomu acatshangwa ukuthi ahlukaniswe umbala. Ngakho-ke okukhiphayo, kulokhu, kuzoba:
Isihloko 545 Isihloko 723 Isihloko 610 Isihloko 118 Isihloko 482 Isihloko 335 Isihloko 271 Isihloko 373Uhlu lwezitatimende ngaphakathi kubakaki abalungile ('{', '}' kuthiwa yi-block. Uma ufaka imibono enemibandela phambi kwebhokisi, isitatimende ngaphakathi kwebhulogi sizokwenziwa kuphela uma isimo siyiqiniso.
awk '$ 7 == "\ $ 7.30" {phrinta $ 3}' table1.txtKulesi simo, isimo siyi $ 7 == "\ $ 7.30", okusho ukuthi isici kukholomu 7 silingana no-$ 7.30. Ukubuyela emuva phambi kwesibonakaliso se-dollar kusetshenziselwa ukuvimbela isistimu ekuhumusha i-$ 7 njengendlela eguquguqukayo futhi esikhundleni salokho, thatha isibonakaliso se-dollar ngokoqobo.
Ngakho-ke isitatimende se-awk sigcizelela isici kukholomu yesithathu komugqa ngamunye onayo "$ 7.30" kukholomu 7.
Ungasebenzisa futhi izinkulumo ezivamile njengesimo. Ngokwesibonelo:
awk '/ 30 / {phrinta $ 3}' table1.txtIntambo ephakathi kwezinkomba zombili ('/') iyinkulumo ejwayelekile. Kulesi simo, kuyisicingo nje "30." Lokhu kusho ukuthi uma umugqa uqukethe izintambo "30", isistimu idlulisa isici ku-ikholomu yesithathu yalowo mgca. Okukhiphayo kusibonelo esingenhla kungaba:
I-Timberlake, i-Gaga, i-Presley, i-Uma izakhi zetafula zizinombolo awk zingasebenzisa izibalo kuzo njengalesi sibonelo:
awk '{ukuphrinta ($ 2 * $ 3) + $ 7}'Ngaphandle kwezinguquko ezitholakalayo ezingeni lomugqa wamanje ($ 1, $ 2, njll) kukhona ukuguquguquka kwe $ 0 okubhekisela kumugqa ophelele (umugqa), kanye ne-NF eguquguqukayo ephethe inani lezinsimu.
Ungakwazi futhi ukuchaza iziguquguquko ezintsha njengalesi sibonelo:
Awk '{sum = 0; ngoba (ikholomu = 1; ikholomu <= NF; ikholomu +) isamba + = $ col; ukuphrinta isamba; } 'Lokhu kuqhathanisa futhi kuguqula inani lazo zonke izakhi zomugqa ngamunye.
Izitatimende ze-Awk zivame ukuhlanganiswa nemilayezo yangempela .