12.07.2013 Views

jegyzet gyomlált változata - Eötvös Loránd Tudományegyetem

jegyzet gyomlált változata - Eötvös Loránd Tudományegyetem

jegyzet gyomlált változata - Eötvös Loránd Tudományegyetem

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

user@host:~$ gawk -f programfájl adatfájl > kimenetfájl<br />

ahol a programfájl a gawk utasításokat tartalmazó fájl, az adatfájl az a fájl, amit a<br />

gawkkal feldolgozunk, a kimenetfájl pedig egy fájl, amibe a kimeneti adatokat el akarjuk<br />

menteni. A fenti parancssorban az -f a gawk program egy kapcsolója, > pedig a standard<br />

kimenetet átirányító operátor. A parancssor ezen elemeiről a 9. fejezetben lesz szó.<br />

4.3. Az awk működése<br />

Az awk az adatfeldolgozás során előre megadott mintákat keres az adatfájl rekordjaiban<br />

(alapesetben soraiban), és azokra a rekordokra (sorokra), amikben egyezést talált a megadott<br />

mintával, végrehajtja a megadott utasításokat. Azokra a rekordokra (sorokra),<br />

amikben az adott minta nem található meg, nem hajt végre műveletet. A feldolgozás<br />

során végighalad az adatfájl minden rekordján (során), majd befejezi a működését. A<br />

feldolgozás során számokkal, karakterekkel, szövegrészekkel végezhetünk műveleteket,<br />

beleértve matematikai és logikai kifejezések használatát is.<br />

Az awk program alapvetően minta–tevékenység utasítások sorozatából áll:<br />

Minta { tevékenység utasítások }<br />

Az awk sor orientált nyelv. Előbb jön a minta, majd a tevékenység. A Minta egy<br />

jelsorozat, ami meghatározza, hogy mely rekordokra legyenek végrehajtva az tevékenység<br />

utasítások részben megadott parancsok. A tevékenység-utasítások { és } közé vannak<br />

zárva. Vagy a minta, vagy a tevékenység elmaradhat, de természetesen mindkettő nem.<br />

Ha a minta hiányzik, a tevékenység minden egyes bemenő rekordon végrehajtódik. A<br />

hiányzó tevékenység ugyanaz, mint a<br />

{ print }<br />

utasítás, amely kiírja az egész rekordot.<br />

4.3.1. Minták<br />

Az awk minták a 4.1. táblázatban felsoroltak lehetnek. A BEGIN és az END két speciális<br />

minta, amely nem inputfüggő. A BEGIN blokkok azelőtt kerülnek végrehajtásra, mielőtt<br />

bármilyen bemenet beolvasása megtörténne. Ehhez hasonlóan az END blokkok akkor<br />

hajtódnak végre, amikor minden bemenet beolvasása véget ért (vagy amikor exit utasítás<br />

hajtódik végre). A BEGIN és az END blokkok nem kombinálhatók más mintákkal a<br />

mintakifejezésekben. A BEGIN és az END minták után nem hiányozhat a tevékenység<br />

rész.<br />

A /reguláris kifejezés/ mintákhoz rendelt utasítás minden olyan rekordra végrehajtódik,<br />

amely illeszkedik a reguláris kifejezésre. A reguláris kifejezések összefoglalását lásd<br />

a 4.5. szakaszban.<br />

54

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!