Indlela yokubhala ii-AWK Command and Scripts

Imiyalelo, i-syntax kunye nemizekelo

Umyalelo we-awk yindlela enamandla yokucwangcisa okanye ukuhlalutya iifayile zetekisi-ngokukodwa, iifayile zedatha ezihlelwe ngemigca (imigqa) kunye neikholomu.

Imiyalelo ye- awk elula ingaqhutywa kumgca womyalelo . Imisebenzi enzima kakhulu kufuneka ibhaliwe njengeenkqubo ze-awk (ezibizwa ngokuba yi-awk scripts) kwifayili.

Ifom ye siseko yomyalelo we-awk ibonakala ngathi:

I-awk 'pattern {action}' enefayile-efayile-yefayile

Oku kuthetha ukuthi: thabatha umgca ngamnye wefayili yenkcazo; ukuba umgca uqulethe iphethini sisebenzise isenzo kumgca kwaye ubhale umgca obangelwayo kwisiphumo-ifayili. Ukuba iphethini ayiphumekanga, isenzo sisetyenziswe kuwo wonke umgca. Umzekelo:

awk '{shicilela i-$ 5}' itafile1.txt> output1.txt

Le nkcazo ithatha iqela lomgca we-5 lomgca ngamnye kwaye uyibhala njengomgca kwifayile yokuphuma "output.txt". Uguquko '$ 4' lubhekisela kwikholam yesibili. Ngokufanayo unako ukufikelela kwikholam yokuqala, yesibini, neyesithathu, nge-$ 1, i-$ 2, i-$ 3, njl. Ngamakholomu angagqibekanga ukuba ahlukaniswe zizikhala okanye iithebhu (oko kuthiwa indawo emhlophe). Ngoko, ukuba ifayile yenkcazo "table1.txt" iqulethe le miqolo:

1, u-Justin Timberlake, Isihloko 545, Intengo ye-$ 7.30 yesi-2, iTrans Swift, Isihloko 723, Intengo ye-$ 7.90 3, uMick Jagger, Isihloko 610, Intlawulo ye-$ 7.90 4, i-Lady Gaga, Isihloko 118, ixabiso lika-7.30 5, uJohnny Cash, Isihloko 482, Ixabiso lika-6.50 6, uElvis Presley, Isihloko 335, Intlawulo ye-7.30 ye-7, uJohn Lennon, Isihloko 271, Intengo ye-$ 7.90 8, uMichael Jackson, Isihloko 373, Ixabiso lika-5.50

Emva koko umyalelo ubhalela le migca elandelayo kwifayile yokuphuma "output1.txt":

545, 723, 610, 118, 482, 335, 271, 373,

Ukuba i-separator yekholomu yinto enye ngaphandle kweendawo okanye iithebhu, ezifana ne-comma, ungacacisa ukuba kwisitatimende sama-awk ngolu hlobo:

u--F, '{shicilela i-$ 3}' itafile1.txt> output1.txt

Oku kuza kukhetha iqela ukusuka kwikholam 3 yomgca ngamnye ukuba amakholomu acingelwa ukuba ahlukaniswe yi-comma. Ngoko ke umphumo, kulo mzekelo, uya kuba:

Isihloko 545 Isihloko 723 Isihloko 610 Isihloko 118 Isihloko 482 Isihloko 335 Isihloko 271 Isihloko 373

Uluhlu lweengxelo ngaphakathi kubakaki abalukiweyo ('{', '}') kuthiwa ibhloko. Ukuba ubeka inqobo imibandela phambi kwebhloko, isitatimenti ngaphakathi kwebhloko siya kuqhutywa kuphela ukuba imeko yinyani.

i-$ 7 == "\ $ 7.30" {shicilela i-$ 3} 'i-table1.txt

Kule meko, le mqathango i-$ 7 == "\ $ 7.30", oku kuthetha ukuba into ekhoyo kwikholamu 7 ilingana no-7.30. Ukubuyela emuva phambi kwesignali ye dollar kusetyenziswa ukukhusela inkqubo ekuguquleleni i-$ 7 njengenguqu eguqukileyo kwaye endaweni yoko thabatha uphawu lweedola.

Ngako-ke isingqinisiso se-awk sichaza into ekhompyutheni yesithathu yomgca ngamnye ophethe "$ 7.30" kwikholamu 7.

Ungasebenzisa kwakhona amagama anjalo njengemeko. Umzekelo:

awk '/ 30 / {phrinta i-$ 3}' itafile1.txt

Umtya phakathi kwezi zimbini ('/') libonisa rhoqo. Kule meko, ngumgca nje "30." Oku kuthetha ukuba umgca uqulethe umtya othi "30", inkqubo ikhupha iqela kwikholamu yesi-3 yaloo mgca. Umphumo kulo mzekelo ungentla:

Timberlake, Gaga, Presley,

Ukuba izixhobo zeetafile zinamanani ama-awk angasebenzisa izibalo kubo njengolu mzekelo:

awk '{shicilela ($ 2 * $ 3) + $ 7}'

Ngaphandle kweenguqu ezifikelelekayo kumqolo okhoyo (i-$ 1, i-$ 2, njl.) Kukho i-variable engu-$ 0 ebhekisela kumgca opheleleyo (umgca), kunye ne-NF eguqukileyo egcina inani lemihlaba.

Ungachaza kwakhona iimpawu ezintsha njengoko kulomzekelo:

i-awk '{sum = 0; (col = 1; ikol <= NF; ikhol ++) isamba + = $ ikhol; isishwankathelo sokuprinta } '

Oku kuqulunqa kwaye kuprintwe isixa-mali sawo onke amanqaku omqolo ngamnye.

Iimpawu ze-Awk zihlala zidibaniswa kunye nemilayezo yobude.