Verwijderde inhoud Toegevoegde inhoud
Dimi15 (overleg | bijdragen)
Nieuwe pagina AWK
 
k Taalcodes vooraan bron, niet elders
 
(108 tussenliggende versies door 65 gebruikers niet weergegeven)
Regel 1:
{{Infobox programmeertaal
<b>AWK</b> is een [[scripttaal]] of nog een [[geïnterpreteerde computertaal]]. De naam is afkomstig van de initialen van de ontwikkelaars Alfred Aho, Peter Weinsberger en Brian Kernighan. De taal werd eind jaren ´70 ontwikkeld. AWK is een programmeertaal die vooral zijn nut heeft bij het verwerken/bewerken van grote hoeveelheden tekstgebaarde data. Aanvankelijk ontwikkeld voor [[UNIX]]-systemen bestaan er ook versie(s) voor [[Windows]]. De taal wordt gekenmerkd door een syntax die veel weg heeft van [[Programmeertaal C]]. Er bestaan verschillende varianten van deze programmeertaal zoals <i>bawk</i> en <i>nawk</i>.
| naam = AWK
| logo =
| extensies =
| paradigma = [[Scripttaal]]
| jaar = 1977
| ontwerper = [[Alfred Aho]], [[Peter Weinberger]], [[Brian Kernighan]]
| ontwikkelaar =
| versie =
| typesystem =
| implementaties =
| dialecten =
| beinvloed = [[C (programmeertaal)|C]], [[SNOBOL]], [[Shell_van_besturingssysteem#Bourne-shell_.28sh.29|Bourne-shell]]
| invloed = [[Perl (programmeertaal)|Perl]], [[Shell_van_besturingssysteem#Korn-shell_.28ksh.29|Korn-shell]]
| besturingssysteem = [[Multiplatform]]
| licentie =
| website = [http://www.cs.bell-labs.com/cm/cs/awkbook/index.html Officiële website]
}}
'''AWK''' is een [[scripttaal]] op het [[besturingssysteem]] [[Unix]], bedoeld voor het automatisch verwerken van tekstbestanden. AWK werd eind [[1970-1979|jaren zeventig]] ontwikkeld door [[Alfred Aho|Alfred '''A'''ho]], [[Peter Weinberger|Peter '''W'''einberger]] en [[Brian Kernighan|Brian '''K'''ernighan]]. AWK is een [[shell van besturingssysteem|shellcommando]] en wordt vaak samen met bijvoorbeeld [[Stream Editor|sed]] gebruikt.
 
== Kenmerken ==
De taal wordt gekenmerkt door een [[syntaxis (informatica)|syntaxis]] die veel weg heeft van [[C (programmeertaal)|C]]. Er zijn verschillende varianten ontstaan met nieuwe functionaliteiten en mogelijkheden waaronder '''nawk''' (''new awk''), '''mawk''' en '''gawk''' (''[[GNU]] awk'').
 
De taal is regelgeoriënteerd: standaard worden van de input alle regels een voor een onderworpen aan patroonherkenning (via een [[reguliere expressie]]) en bij een treffer wordt een na het patroon aangegeven actie uitgevoerd. Dit maakt de taal zeer geschikt om filters te ontwerpen voor bestanden die in regels zijn ingedeeld, waarvoor vaak maar 1 regeltje code nodig is. Door toevoegingen kan de taal echter voor veel meer dingen worden gebruikt.
 
== Beschikbaarheid ==
AWK wordt tegenwoordig bij elke [[Unix]]variant geleverd, inclusief alle [[Linuxdistributie]]s. Ook voor [[Microsoft Windows|Windows]] zijn AWK-varianten beschikbaar. AWK wordt nog steeds door veel computerspecialisten gebruikt om snel kleine programma's te schrijven voor specifieke tekstgerelateerde taken.
 
== Inspiratie ==
[[Larry Wall]] werd door AWK geïnspireerd bij het ontwerpen van de [[Perl (programmeertaal)|programmeertaal Perl]].
 
== Voorbeelden ==
1. Het bekende [[Hello world (programma)|Hello world]]-programma ziet er in AWK als volgt uit:
BEGIN { print "Hello world" }
 
2. De wiki-code voor vet vervangen door standaard HTML-code:
# wiki bold
/&#039;&#039;&#039;/ { while( sub(/&#039;&#039;&#039;/,"&lt;b&gt;")){ sub(/&#039;&#039;&#039;/,"&lt;/b&gt;");}
}
{print}
 
3. Een eigenaardigheid van AWK is dat een spatie gebruikt wordt als concatenatie-operator. Dit wordt gebruikt in volgend voorbeeld. Men beschikt over een Excel-tabel met naam- en adresgegevens van een groep personen. De 1e kolom bevat de familienaam, de 2e de voornaam en de 6e het e-mailadres. Men wil een lijst van de e-mailadressen in de vorm: "voornaam familienaam" <e-mailadres> . Men exporteert de Excel-tabel als csv-bestand met het [[verticaal streepje]] (OF-streepje) als scheidingsteken en past er volgend AWK-programma op toe:
BEGIN {FS= "|" ; qq = "\""; lines = 0;}
{ print qq $2 " " $1 qq " &lt;" $6 "&gt;";
lines=lines+1;}
END {print " "; print lines " records treated"}
 
== Zie ook ==
* [[Lijst van programmeertalen]]
 
== Externe links ==
* {{en}} [https://code.google.com/p/gnu-on-windows/downloads/detail?name=gawk-4.0.2-bin.zip&can=2&q= gawk.exe] downloaden via [[GNU]] on Windows
* {{en}} [http://www.cs.princeton.edu/~bwk/btl.mirror/index.html Homepage van de "One True AWK"], door een van de drie AWK-grondleggers [[Brian Kernighan]].
* {{en}} [https://web.archive.org/web/20151205164725/http://www.staff.science.uu.nl/~oostr102/docs/nawk/nawk_toc.html User's manual], staff.science.uu.nl
 
== Literatuur ==
* Alfred V. Aho, Brian W. Kernighan, en Peter J. Weinberger: The AWK Programming Language. Addison-Wesley, 1988. {{ISBN|020107981X}} Een uitvoerige definitie en uitleg met veel voorbeelden door de ontwerpers van de taal.
 
{{Navigatie programmeertalen}}
 
[[Categorie:Programmeertaal]]