# 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.

## [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

A lap eredeti címe "http://hu.wikipedia.org../../../a/w/k/Awk_programoz%C3%A1si_nyelv.html"

Kategória: Programozási nyelvek

##### Views

- Szócikk
- Vitalap
- Aktuális változat

##### Keresés

##### Más nyelveken

- English
- Bosanski
- Català
- Česky
- Deutsch
- Español
- فارسی
- Suomi
- Français
- Hrvatski
- Italiano
- 日本語
- 한국어
- Nederlands
- ‪Norsk (bokmål)‬
- Polski
- Português
- Русский
- Slovenčina
- Svenska
- ไทย
- Türkçe
- Українська
- 中文