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:

  1. #! – imsejjaħ Shebang, li jispeċifika interpretu għall-istruzzjonijiet fi skript
  2. /usr/bin/awk – huwa l-interpretu
  3. -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.