Kuidas kirjutada skripte Awk-programmeerimiskeele abil - 13. osa


Kogu Awk-seeria algusest kuni 12. osani oleme kirjutanud väikesed Awk-käsud ja programmid vastavalt käsureal ja shelliskriptides.

Kuid Awk, nagu Shell, on ka tõlgendatud keel, seetõttu võite nüüd kirjutada Awki käivitatavad skriptid koos kõigega, mida oleme selle seeria algusest peale läbi käinud.

Sarnaselt sellele, kuidas kirjutame shelliskripti, algavad Awki skriptid reaga:

#! /path/to/awk/utility -f 

Näiteks minu süsteemis asub Awki utiliit kataloogis/usr/bin/awk, seetõttu käivitaksin Awki skripti järgmiselt:

#! /usr/bin/awk -f 

Ülaltoodud joone selgitamine:

  1. #! - nimetatakse Shebangiks, mis määrab skripti juhiste jaoks tõlgi
  2. /usr/bin/awk - on tõlk
  3. -f - tõlgi võimalus, mida kasutatakse programmifaili lugemiseks

Sellest hoolimata uurigem nüüd mõnda Awki käivitatavate skripti näidet. Alustame allpool toodud lihtsa skriptiga. Uue faili avamiseks kasutage oma lemmikredaktorit järgmiselt:

$ vi script.awk

Ja kleepige allolev kood faili:

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Salvestage fail ja väljuge, seejärel tehke skript käivitatavaks, väljastades järgmise käsu:

$ chmod +x script.awk

Seejärel käivitage see:

$ ./script.awk
Writing my first Awk executable script!

Kriitiline programmeerija peab seal küsima: "" Kus on kommentaarid? ", Jah, võite lisada kommentaare ka oma Awki skripti. Kommentaaride kirjutamine koodis on alati hea programmeerimistava.

See aitab teistel programmeerijatel teie koodi läbi vaadata, et mõista, mida proovite saavutada skripti või programmifaili igas jaotises.

Seetõttu võite ülaltoodud skripti lisada kommentaare järgmiselt.

#!/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!" }

Järgmisena vaatame näidet, kus loeme failist sisendit. Soovime kontofailis/etc/passwd otsida süsteemikasutajat nimega aaronkilik, seejärel printida kasutajanimi, kasutajatunnus ja kasutaja GID järgmiselt:

Allpool on meie skripti sisu nimega 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 }

Salvestage fail ja väljuge, muutke skript käivitatavaks ja käivitage see järgmiselt:

$ chmod +x second.awk
$ ./second.awk /etc/passwd
Username : aaronkilik User ID : 1000 User GID : 1000

Viimases allpool toodud näites kasutame lauset do-10 kasutades numbrite 0-10 printimiseks:

Allpool on meie skripti sisu nimega 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)
}

Pärast faili salvestamist tehke skript käivitatavaks, nagu oleme seda varem teinud. Seejärel käivitage see:

$ chmod +x do.awk
$ ./do.awk
0
1
2
3
4
5
6
7
8
9
10

Kokkuvõte

Oleme jõudnud selle huvitava Awk-sarja lõppu, loodan, et olete õppinud kõigist 13 osast Awki programmeerimiskeele sissejuhatuseks palju.

Nagu ma algusest peale mainisin, on Awk terviklik tekstitöötluskeel, seetõttu saate õppida rohkem muid Awki programmeerimiskeele aspekte, näiteks keskkonnamuutujaid, massiive, funktsioone (sisseehitatud ja kasutaja määratletud) ja kaugemale.

Awki programmeerimisel on veel täiendavaid osi, mida õppida ja omandada, nii et allpool olen esitanud mõned lingid olulistele veebiressurssidele, mida saate kasutada oma Awki programmeerimisoskuste laiendamiseks. Need pole tingimata kõik, mida vajate, võite vaadata ka välja kasulike Awki programmeerimisraamatute jaoks.

Viited: AWK keele programmeerimine

Mõtete, mida soovite jagada, või küsimuste korral kasutage allolevat kommentaarivormi. Pidage meeles, et põnevamate seeriate jaoks hoidke alati ühendust Tecmintiga.