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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Mit? Miért?<br />

/^[^#]/ Azt a mintát keressük, amikor az első karakter nem<br />

#. Ehhez elsőként a mintát sor elejére illesztjük (ˆ),<br />

majd azt a karakter osztályt vesszük, amely nem a #<br />

karakter. Ezzel ekvivalens a !/^#/ minta is, amely a<br />

sor elején lévő #-jel illeszkedés negáltját adja.<br />

&& És kapcsolat a következő minta-feltétellel.<br />

($1 > 4) Az első oszlop elemének értéke nagyobb, mint négy.<br />

{s += $2; n++} A feltételnek megfelelő sorokra az s változó előző értékéhez<br />

hozzáadjuk a második oszlop értékét, és az n<br />

változó értékét eggyel növeljük.<br />

END{print s/n} Az adatfájl beolvasása után kiírjuk az átlagot.<br />

4.2. megoldása: Az alábbi gawk szkripttel oldhatjuk meg a feladatot:<br />

/^[[:space:]]*#[^$]*/{$NF=""}<br />

{print}<br />

Mit? Miért?<br />

/^[[:space:]]*#[^$]*/ Azt a mintát illesztjük, amikor a sor elején (ˆ) nulla<br />

vagy több üres karakter után ([[:space:]]* )egy #-jel<br />

áll (#), majd utána nulla vagy több karakter következik,<br />

amelyek nem $-jelek ([ˆ$]* ).<br />

{$NF=""} Az adott sor mezőinek számát a NF beépített változó<br />

tartalmazza. Az értékadással az utolsó mezőt üres<br />

stringre változtatjuk, azaz kitöröljük.<br />

{print} Kiíratjuk az adott sort. Mivel ez előtt a feladat előtt<br />

nincs minta, ezért ez a parancs minden sorra végrehajtódik,<br />

akkor is ha módosítottuk a sort, akkor is,<br />

ha nem.<br />

4.3. megoldása: vimben egy lehetséges megoldás a következő:<br />

/[[:alpha:]]\+[[:upper:]][[:alpha:]]*<br />

Mit? Miért?<br />

/ Elindítjuk a keresést.<br />

[[:alpha:]]\+ A minta először legalább egy betűre illeszkedik.<br />

[[:upper:]] Aztán egy nagybetűre illeszkedik a minta.<br />

[[:alpha:]]* Nulla vagy több nem üres karakter van még a szóban.<br />

gawkkal a következő programmal írathatjuk ki a megfelelő szavakat:<br />

134

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

Saved successfully!

Ooh no, something went wrong!