Kif Tikteb Skripts Permezz tal-Lingwa ta' Programmazzjoni Awk - Parti 13
Kollha mill-bidu tas-serje Awk sa Parti 12, ilna niktbu kmandi u programmi Awk żgħar fuq il-linja tal-kmand u fi skripts tal-qoxra rispettivament.
Madankollu, Awk, bħalma Shell, hija wkoll lingwa interpretata, għalhekk, b'dak kollu li għaddejna minnu mill-bidu ta 'din is-serje, issa tista' tikteb skripts eżekutibbli Awk.
Simili għal kif niktbu skript tal-qoxra, l-iskripts Awk jibdew bil-linja:
#! /path/to/awk/utility -f
Pereżempju fis-sistema tiegħi, l-utilità Awk tinsab f'/usr/bin/awk, għalhekk, nibda script Awk kif ġej:
#! /usr/bin/awk -f
Tispjega l-linja hawn fuq:
#!
– imsejjaħ Shebang, li jispeċifika interpretu għall-istruzzjonijiet fi skript/usr/bin/awk
– huwa l-interpretu-f
– għażla ta' interpretu, użata biex taqra fajl tal-programm
Cela dit, ejjew issa noqogħdu nħarsu lejn xi eżempji ta 'skripts eżekutibbli Awk, nistgħu nibdew bl-iskrittura sempliċi hawn taħt. Uża l-editur favorit tiegħek biex tiftaħ fajl ġdid kif ġej:
$ vi script.awk
U waħħal il-kodiċi hawn taħt fil-fajl:
#!/usr/bin/awk -f BEGIN { printf "%s\n","Writing my first Awk executable script!" }
Issejvja l-fajl u oħroġ, imbagħad agħmel l-iskritt eżekutibbli billi toħroġ il-kmand hawn taħt:
$ chmod +x script.awk
Minn hemm 'il quddiem, mexxiha:
$ ./script.awk
Writing my first Awk executable script!
Programmatur kritiku hemmhekk irid ikun jistaqsi, \fejn huma l-kummenti?, Iva, tista 'wkoll tinkludi kummenti fl-iskrittura Awk tiegħek. Il-kitba tal-kummenti fil-kodiċi tiegħek hija dejjem prattika ta' programmar tajba.
Jgħin lil programmaturi oħra li qed ifittxu permezz tal-kodiċi tiegħek biex jifhmu dak li qed tipprova tikseb f'kull sezzjoni ta 'skript jew fajl tal-programm.
Għalhekk, tista 'tinkludi kummenti fl-iskrittura ta' hawn fuq kif ġej.
#!/usr/bin/awk -f #This is how to write a comment in Awk #using the BEGIN special pattern to print a sentence BEGIN { printf "%s\n","Writing my first Awk executable script!" }
Sussegwentement, se nħarsu lejn eżempju fejn naqraw input minn fajl. Irridu nfittxu utent tas-sistema jismu aaronkilik fil-fajl tal-kont, /etc/passwd, imbagħad ipprintja l-isem tal-utent, l-ID tal-utent u l-GID tal-utent kif ġej:
Hawn taħt hemm il-kontenut tal-iskrittura tagħna msejjaħ second.awk.
#! /usr/bin/awk -f #use BEGIN sepecial character to set FS built-in variable BEGIN { FS=":" } #search for username: aaronkilik and print account details /aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }
Issejvja l-fajl u oħroġ, agħmel l-iskritt eżekutibbli u eżegwitu kif hawn taħt:
$ chmod +x second.awk $ ./second.awk /etc/passwd
Username : aaronkilik User ID : 1000 User GID : 1000
Fl-aħħar eżempju hawn taħt, se nużaw id-dikjarazzjoni do while biex nipprintjaw in-numri minn 0-10:
Hawn taħt hemm il-kontenut tal-iskrittura tagħna msejjaħ do.awk.
#! /usr/bin/awk -f #printing from 0-10 using a do while statement #do while statement BEGIN { #initialize a counter x=0 do { print x; x+=1; } while(x<=10) }
Wara li ssejvja l-fajl, agħmel l-iskrittura eżekutibbli kif għamilna qabel. Wara, mexxiha:
$ chmod +x do.awk $ ./do.awk
0 1 2 3 4 5 6 7 8 9 10
Sommarju
Wasalna fl-aħħar ta 'din is-serje Awk interessanti, nispera li tgħallimt ħafna mit-13-il parti kollha, bħala introduzzjoni għal-lingwa ta' programmar Awk.
Kif semmejt mill-bidu, Awk hija lingwa kompleta għall-ipproċessar tat-test, għal dik ir-raġuni, tista 'titgħallem aktar aspetti oħra tal-lingwa ta' programmar Awk bħal varjabbli ambjentali, arrays, funzjonijiet (inkorporati & definiti mill-utent) u lil hinn.
Għad hemm partijiet addizzjonali tal-ipprogrammar Awk biex titgħallem u nikkontrollaw, għalhekk, hawn taħt, ipprovdejt xi links għal riżorsi online importanti li tista 'tuża biex tespandi l-ħiliet tiegħek ta' programmar Awk, dawn mhux neċessarjament huma dak kollu li għandek bżonn, tista 'tfittex ukoll barra għal kotba utli tal-ipprogrammar Awk.
Links ta' Referenza: Programmazzjoni tal-Lingwa AWK
Għal kwalunkwe ħsibijiet li tixtieq taqsam jew mistoqsijiet, uża l-formola tal-kummenti hawn taħt. Ftakar li dejjem tibqa' konnessa ma' Tecmint għal aktar serje eċċitanti.