Awk programozási nyelv
A Wikipédiából, a szabad lexikonból.
Az awk egy általános célú programozási nyelv, amelyet szöveges állományok földolgozására terveztek. Elnevezése a megalkotói – Alfred Aho, Peter Weinberger és Brian Kernighan – családnevének kezdőiből született. A UNIX 3 verziójában jelent meg, és eleinte főleg a sed szerkesztőeszközzel együtt vagy anélkül használták. Ideális szöveges állományok szűrésére, átformálására, kiértékelésére. Ma is minden unix rendszeren van legalább egy awk változat. A Free Software Foundation a gawk nevű változatot gondozza.
Az awk kizárólag karaktersorozatokkal foglalkozik (string), a számábrázolásra is ezeket használja. Emellett ismeri az asszociatív tömböket is (példa: a["kutya"], a["macska"]), melyeket hash-nak is neveznek. Ezek például szótárszerű alkalmazásoknál nyújtanak kitűnő segítséget. A szabályos kifejezések (regular expression) szintén a nyelv részei.
Az awk nyelv ereje, rövidsége, de az awk szkriptek határainak felismerése adta Larry Wallnak az ötletet a Perl nyelv kifejlesztésére.
Tartalomjegyzék |
[szerkesztés] Egy awk program fölépítése
Egy tipikus awk program a végrehajtása során a bemeneti adatokat egy másféle kimenetté formálja át.
A programok általában mintából és a mintához tartozó parancsokból állnak:
- /1. minta / { parancs(ok) }
- /2. minta / { parancs(ok) }
Az awk soronként olvassa a bemenetet. Minden beolvasott sort összehasonlít a mintákkal, és ha illeszkedést talál, a parancsokat végrehajtja. A mintákat a reguláris kifejezések szabályai szerint értelmezi.
A különleges parancsformák:
- BEGIN { parancs(ok) }
- adatbeolvasás előtt ezeket a parancsokat végrehajtja
- END { parancs(ok) }
- adatbeolvasás és a többi parancs végrehajtása után ezeket a parancsokat végrehajtja
- /minta/
- ha nincs külön parancs megadva, a mintának megfelelő sort kinyomtatja
- { akció }
- ha nincs minta megadva, a parancsokat végrehajtja minden sorra egymás után
[szerkesztés] Változók
Lehetséges a változók használata. Vannak előre megadott változók, ezek: $0 az egész sor, $1, $2, ...$n a sor egyes, egymástól szóközzel elválasztott részei. Ez az automatikus felbontás nagyon egyszerűvé és hatásossá teszi az awk használatát.
[szerkesztés] Awk parancsok
Az awk nyelv szintaktikája hasonlít a C nyelvéhez, ami nem csoda, hiszen az egyik szerző, Brian W. Kernighan a C nyelv föltalálója. Elemi parancsok a változóknak való értékadás, a változók összehasonlítása, és a feltételes parancsvégrehajtás (if...else) vagy a hurkok (for, while). Emellett belső függvényeket illetve saját programmozású függvényeket is föl lehet hívni. (function).
Az adatokat a "print" paranccsal lehet kinyomtatni. Például egy sor második mezőjét a
print $2
paranccsal nyomtatjuk ki.
[szerkesztés] Irodalom
- Alfred V. Aho, Brian W. Kernighan, and Peter J. Weinberger: Az AWK Programozási nyelv. Addison-Wesley, 1988, ISBN 0-201-07981-X
[szerkesztés] Külső kapcsolatok
- comp.lang.awk - Usenet hírcsoport
- http://www.gnu.org/software/gawk/gawk.html - GAWK (GNU Awk) Weboldal
- http://www.bg.bib.de/portale/bes/Scripting/AWK/awk.pdf - AWK-bevezető németül


Based on work by