Komentosarjojen kirjoittaminen Awk-ohjelmointikielellä - osa 13


Awk-sarjan alusta osaan 12 asti olemme kirjoittaneet koko ajan pieniä Awk-komentoja ja komentoja komentoriville.

Kuitenkin Awk, aivan kuten Shell, on myös tulkittu kieli, joten kaikella, mitä olemme käyneet läpi tämän sarjan alusta, voit nyt kirjoittaa Awk-suoritettavia komentosarjoja.

Samoin kuin kirjoitamme komentosarjan komentosarjan, Awk-komentosarjat alkavat rivillä:

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

Esimerkiksi järjestelmässäni Awk-apuohjelma sijaitsee/usr/bin/awk, joten aloitan Awk-komentosarjan seuraavasti:

#! /usr/bin/awk -f 

Yllä olevan rivin selittäminen:

  1. #! - nimeltään Shebang, joka määrittää tulkin komentosarjan ohjeille
  2. /usr/bin/awk - on tulkki
  3. -f - tulkki-vaihtoehto, jota käytetään ohjelmatiedoston lukemiseen

Siitä huolimatta sukelkaamme nyt tarkastelemaan joitain esimerkkejä Awk-suoritettavista skripteistä, voimme aloittaa alla olevalla yksinkertaisella komentosarjalla. Avaa uusi tiedosto suosikkieditorilla seuraavasti:

$ vi script.awk

Ja liitä alla oleva koodi tiedostoon:

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

Tallenna tiedosto ja poistu, tee sitten komentosarja suoritettavaksi antamalla seuraava komento:

$ chmod +x script.awk

Suorita sen jälkeen:

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

Kriittisen ohjelmoijan on kysyttävä, "missä kommentit ovat?", Kyllä, voit myös sisällyttää kommentteja Awk-komentosarjaasi. Kommenttien kirjoittaminen koodiin on aina hyvä ohjelmointikäytäntö.

Se auttaa muita ohjelmoijia, jotka etsivät koodiasi, ymmärtämään, mitä yrität saavuttaa komentosarjan tai ohjelmatiedoston kussakin osassa.

Siksi voit sisällyttää kommentteja yllä olevaan komentosarjaan seuraavasti.

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

Seuraavaksi tarkastellaan esimerkkiä, jossa luemme syötteen tiedostosta. Haluamme etsiä järjestelmäkäyttäjää nimeltä aaronkilik tilitiedostosta/etc/passwd ja tulostaa sitten käyttäjänimi, käyttäjätunnus ja käyttäjän GID seuraavasti:

Alla on script.nimi nimeltä 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 }

Tallenna tiedosto ja poistu, tee komentosarja suoritettavaksi ja suorita se seuraavasti:

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

Alla olevassa viimeisessä esimerkissä käytämme do while -lausetta tulostaaksesi numeroita 0-10:

Alla on käsikirjoituksemme nimeltä do.awk sisältö.

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

Kun olet tallentanut tiedoston, tee komentosarja suoritettavaksi kuten olemme tehneet aiemmin. Suorita sen jälkeen:

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

Yhteenveto

Olemme päässeet tämän mielenkiintoisen Awk-sarjan loppuun, toivon, että olet oppinut paljon kaikista 13 osasta johdannoksi Awk-ohjelmointikielelle.

Kuten mainitsin alusta alkaen, Awk on täydellinen tekstinkäsittelykieli, tästä syystä voit oppia lisää muita Awk-ohjelmointikielen näkökohtia, kuten ympäristömuuttujia, taulukoita, toimintoja (sisäänrakennettu ja käyttäjän määrittämä) ja pidemmälle.

Awk-ohjelmoinnissa on vielä muita osia oppia ja hallita, joten alla olen antanut joitain linkkejä tärkeisiin online-resursseihin, joita voit käyttää laajentamaan Awk-ohjelmointitaitojasi. Nämä eivät välttämättä ole kaikki mitä tarvitset, voit myös etsiä ulos hyödyllisiä Awk-ohjelmointikirjoja varten.

Viitelinkit: AWK-kielen ohjelmointi

Käytä alla olevalla kommenttilomakkeella ajatuksia, jotka haluat jakaa, tai kysymyksiä. Muista pysyä aina yhteydessä Tecmintiin saadaksesi jännittäviä sarjoja.