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