AWK

AWK on tekstin käsittelemiseen kehitetty täsmätarkoituksellinen ohjelmointikieli. Kielen ovat kehittäneet Alfred Aho, Peter Weinberger ja Brian Kernighan Bell Labsissa vuonna 1977.[2][3][4] Kieli julkaistiin vuonna 1979 ja sitä on päivitetty myöhempiin julkaisuihin.[3]

AWK
Julkaistu 1979
Suunnitellut Alfred Aho, Peter Weinberger, Brian Kernighan
Vakaa versio IEEE Std 1003.1-2008[1]
Merkittävimmät toteutukset awk, GNU AWK, nawk, mawk
Vaikutteet C
Uutisryhmä comp.lang.awk

Ahon mukaan kielestä tuli suosittu koska se tuli jokaisen Unix-järjestelmän mukana.[5]

AWK-ohjelmat ovat esitysmuodoltaan hyvin tiiviitä. Niissä käytetään yleisesti muun muassa säännöllisiä lausekkeita.

Kieli

AWK-kieli perustuu ehtojen ja toimintojen määrittämiseen:[3]

ehto { toiminto }
ehto { toiminto }

Yksinkertainen ohjelma määrittää ehdon ja toiminnon seuraavasti:[3]

$1 == "osoite" { print $2, $3 }

.. jossa ehtona ensimmäinen parametri tarkistetaan arvoa osoite vasten ja mikäli se täsmää toinen ja kolmas parametri tulostetaan. Mikäli ehto jätetään pois toiminto suoritetaan jokaiselle riville ja mikäli toiminto jätetään pois ohjelma tulostaa jokaisen ehdon täyttämän rivin.[3]

AWK tukee myös käyttäjän määrittämiä funktioita:[3]

func nimi(argumentit) { 
  lausekkeet
}

Toteutukset

Alkuperäisen Bell Labsissa tehdyn toteutuksen lisäksi kielestä on avoimen lähdekoodin toteutus GNU AWK (gawk), joka on julkaistu vuonna 1988.[6] Muihin toteutuksiin kuuluvat muun muassa Brian Kernighanin nawk ja Mike Brennanin mawk.[6][7]

Esimerkkejä

Yksinkertainen AWK-ohjelma, joka tulostaa näytölle tekstin "Hello, world!"

 BEGIN { print "Hello, world!"; }

Tässä Unix-komennon tuloste putkitetaan AWK:lle joka laskee hakemistossa olevien tiedostojen (ml. alihakemistot ja niiden tiedostot) kokojen summan tavuina ja tulostaa tuloksen:

ls -alR | awk '{ s+=$5; } END { print s; }'

Kirjallisuutta

  • Aho, Alfred V.; Kernighan, Brian W.; Weinberger, Peter J., The AWK Programming Language, 1988, ISBN 978-0201079814

Lähteet

  1. awk - pattern scanning and processing language The Open Group. Viitattu 27.5.2019. (englanniksi)
  2. Awk -- A Pattern Scanning and Processing Language (Second Edition) (1978)
  3. Alfred V. Aho & Brian W. Kernighan & Peter J. Weinberger: Awk -- A Pattern Scanning and Processing Language (PDF) doc.cat-v.org. 30.9.2015. doi:10.1.1.31.1299. Viitattu 27.5.2019. (englanniksi)
  4. Aleksey Dolya: Interview with Brian Kernighan 29.7.2003. Linux Journal. Viitattu 7.9.2019. (englanniksi)
  5. Naomi Hamilton: The A-Z of Programming Languages: AWK (sivu 2) 27.5.2008. Computerworld. Arkistoitu 23.3.2019. Viitattu 27.5.2019. (englanniksi)
  6. Aharon (Arnold) Robbins: The GNU Project and Me 27 Years with GNU Awk (PDF) skeeve.com. 27.5.2014. Viitattu 27.5.2019. (englanniksi)
  7. mawk pattern scanning and text processing language invisible-island.net. Viitattu 27.5.2019. (englanniksi)

    Aiheesta muualla

    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.