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