Operációs rendszerek gyakorlat 2008.11.18. Reguláris kifejezések.

Slides:



Advertisements
Hasonló előadás
Deduktív adatbázisok.
Advertisements

Predikátumok Dr. György Anna BMF-NIK Szoftvertechnológia Intézet.
Thalész tétele A síkon azoknak a pontoknak a halmaza, amelyekből egy adott AB szakasz derékszög alatt látszik, az AB átmérőjű kör, kivéve az AB szakasz.
Egyszerű LL grammatika.  Definíciók  Példa. Ábrákkal  MASM program (szó felismerése LL(1) –ben )
SZENT ISTVÁN EGYETEM GAZDASÁG- ÉS TÁRSADALOMTUDOMÁNYI KAR AUTO- SZŰRŐ FEJLESZTÉSE TÁBLÁZAT ALAPÚ JELENTÉSEK UTÓLAGOS, BÖNGÉSZŐN BELÜLI TOVÁBB- FELDOLGOZÁSÁRA.
Operációs rendszerek gyakorlat 10. Gyakorlat Vakulya Gergely.
Halmazok.
Vizuális és web programozás II. TRTLB226 Tantárgyfelelős: Lénárt Anett mérnöktanár Rendszer- és Szoftvertechnológia Tanszék B137
Adatszerkezetek Az adatokat két fő csoportra oszthatjuk: egyszerű és összetett adatok.  Az egyszerű adatot egy érték jellemez, tovább nem bontható. (szám,
Az Informatikai Szaknyelvi Vizsga
A szoftverek csoportosítása
Műveletek mátrixokkal
Tóth Dániel, Szatmári Zoltán
Algebrai struktúrák 1.
Tóth István Algoritmusok és adatszerkezetek 2.
Kétértékűség és kontextusfüggőség Kijelentéseink igazak vagy hamisak (mindig az egyik és csak az egyik) Kijelentés: kijelentő mondat (tartalma), amivel.
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1.
Az első program, avagy ismerkedés a nyelvvel
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Mutatók, tömbök, függvények
IPPI ÁLTALÁNOS ISKOLA SZILÁGY MEGYE
IPPI ÁLTALÁNOS ISKOLA SZILÁGY MEGYE
Ruby nyelv. Története Yukihiro Matsumoto (szül ápr. 4.) alkotta meg, az ideális script nyelv hosszú eredménytelen keresése után. A lehetséges jelöltek.
Adatbázis-kezelés ACCESS program:
Operációs rendszerek gyakorlat
Programozó matematikus szak 2003/2004-es tanév II. félév
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
A digitális számítás elmélete
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
Scriptnyelvek 9. gyakorlat Papp Gyula április 29.
Fuzzy rendszerek mérnöki megközelítésben I
Differenciál számítás
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
Alphabet is a type specification = sorts: alphabet oprs: a:  alphabet,...,z:  alphabet end alphabet; nat is a type specification = sorts:nat oprs:zerus:
Operációs rendszerek gyakorlat. Reguláris kifejezések.
Operációs rendszerek gyakorlat sed, awk parancsok.
Operációs rendszerek 6. gyakorlat sed parancsok. Sed parancs Stream editor – folyamban lévő szöveg szerkesztése Pl.: szöveg lecserélésére Működése: Keres.
Operációs rendszerek Segédprogramok, szűrők. Vadász2 A mai program Hasznos, vegyes segédprogramok –test, expr, read; startup programok Rekurzió Alapfogalmak.
Bevezetés a terminológiába. input output Gépi feldolgozás Jelentés- független Jelentés- függő Információfeldolgozás.
Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely.
Operációs rendszerek gyakorlat 2. Gyakorlat Vakulya Gergely.
Operációs rendszerek gyakorlat 3. Gyakorlat Vakulya Gergely.
Operációs rendszerek gyakorlat 6. Gyakorlat Vakulya Gergely.
Operációs rendszerek gyakorlat 8. Gyakorlat Vakulya Gergely.
4. Gyires Béla Informatikai Nap Debreceni Egyetem Informatikai Kar Új eredmények a Chomsky-féle (formális) nyelvtípusokkal kapcsolatban Dr. Nagy Benedek.
Természetes és formális nyelvek Jellemzők, szintaxis definiálása, Montague, extenzió - intenzió, kategóriákon alapuló gramatika, alkalmazások.
Szintaktikai, szemantikai szabályok
Operátorok Értékadások
Programozási nyelvek.
LEXINFO Az Informatikai Szaknyelvi Vizsga sajátosságai Babos Krisztina Dunaújváros, május 09.
DOKUMENTUMOK KÉSZÍTÉSE WORD 2007 SZÖVEGSZERKESZTŐVEL II. rész.
Készítette: Csíki Gyula
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
INFORMATIKA ALAPFOGALMAK
Java programozási nyelv Metódusok
Reguláris kifejezések
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Scriptelés alapok Tóth Dániel, Szatmári Zoltán Intelligens.
Webprogramozó tanfolyam
Operációs rendszerek gyakorlat sed parancsok.
Egy operációs rendszer könyvtárszerkezete (tárolórendszere)
Operációs rendszerek gyakorlat 7. Gyakorlat Vakulya Gergely.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Fordítóprogramok gyakorlat tavaszi félév gyakorlatvezető:Kitlei Róbert szoba:D 2-616B honlap:
Adatstruktúrák Algoritmusok Objektumok
Elemi adattípusok.
Compiler illetve interpreter nyelvek
LL(1)-elemzés az LL(1)-elemzők már jobbak az előzőeknél, bár nem fedik le a programozási nyelvek szükségleteit alapötlet: a levezetés következő lépéséhez.
Formális nyelvek és gépek
ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)
Előadás másolata:

Operációs rendszerek gyakorlat Reguláris kifejezések

Reguláris kifejezés Bizonyos szintaktikai szabályok szerint leírt string, amivel meghatározható stringek egy halmaza. Automata elmélet, formális nyelvek Programnyelvek (Perl, PHP) Szövegszerkesztők (Emacs, vi) Segédprogramok (awk, expr, egrep)

a|b* jelöli a {ε, a, b, bb, bbb, …} halmazt (a|b)* által jelölt halmaz tartalmaz minden olyan stringet, amely tetszés szerinti számú a és b szimbólumból áll, valamint az üres stringet is b*(ab*)*

Reguláris kifejezések Shell számára bizonyos karakterek speciális jelentéssel bírnak Ezek a meta-karakterek #\{}|*+#\{}|*+ '"><&^;'"><&^; !-$[]!-$[]

Meta karakterek.- egyetlen karakterre illeszkedik *- 0 vagy többszöri előfordulás +- 1 vagy többszöri előfordulás \- védelem, egyetlen karakter védelme ‘- védelem, több karakter „- védelem, több karakter |- vagy &- és ^- sor elejére illeszkedés, negálás $- sor végére illeszkedés, shell változó jele -- tól ig [ ]- bármely zárójelben felsoroltra ( )- csoportosításhoz { }- előfordulás > <- átvezetés !- nem

Példa a megértéshez Adott egy fájl. Hogyan lehetne keresni ebben a file-ban olyan mintát, mely akárhány 'a‘ karakterből áll? grep a* test3 A probléma az, hogy a * jelet a shell fogja értelmezni és nem a grep parancs. Vagyis a fenti parancs megpróbál olyan file-okat keresni, amelyik 'a'-val kezdődik és bármi lehet utána

Speciális karakterek kezelése Három lehetőség van a speciális karakterek kezelésére: backslash \ egyszeres aposztróf ‘ kétszeres aposztróf” A speciális karaktereket tehát védeni kell.

Egyetlen karakter védelme Backslash karakterrel Pl.: Nyomtassunk ki egy olyan szöveget, amelyik egy 'a' betűvel kezdődik és 'b' betűvel végződik és a betűk között 5 darab SPACE van. echo a b Eredmény: a b Vagyis minden egyes SPACE karaktert meg kell védeni echo a\ \ \ \ \ b

Több karakter védelme Egyszeres vagy kétszeres aposztróffal echo 'a b‘ De: itt is van precedencia! Pl.: echo "$Hello vilag" Eredmény: vilag Mivel a $Hello egy shell változó

File nevek Hogyan lehetne olyan file nevet leírni, amelyik pl SPACE-t is tartalmaz: cat 'ez egy file' <<VEGE > aa > VEGE cat ez\ egy\ file <<VEGE > aa > VEGE Feladat: Hozzuk létre a következő file-t, melyben egy csillag van: hello*vilag

Fontos! A grep parancs nem kezeli az összes reguláris kifejezést. Ennek megoldására használjuk az egrep parancsot! Szintaxisuk azonos.

Példa Hozzuk létre a következő file-t (test3): Hogyan lehetne keresni a test3 file-ban olyan mintát, mely akárhány 'a‘ karakterből áll? egrep 'a*' test3 egrep 'aa*' test3 egrep 'a+' test3 aa bb cc rr tt yy aaa ooo qq ww vv aaaaa xx tt

Példa – folyt. Egészítsük ki a teszt3 fájlt olyan sorral, melyben szerepel a * és \ karakter. Hogyan lehetne megkeresni azt a sort, amelyik a csillag karaktert és a backslash karaktert tartalmazza? egrep '\*' test3 egrep '\\' test3 aa bb cc rr tt yy aaa ooo qq ww * vv aaaaa \ xx tt

Hogyan lehetne az 'u'-val kezdődő, bármilyen karaktert tartalmazó és 'a'-val végződő szöveget megkeresni? Pl: 'usa' egrep 'u.a' És ha kis és nagy betű között nincs különbség? Pl. 'USA' egrep -i 'U.A‘ Ha csak az u-val kezdődőekre illesztünk? Pl. ‘usa‘ jó, de ‘busa’ nem egrep ‘^u.a‘ egrep ‘^u.a$‘

Hogyan lehetne az 'u'-val kezdődő és 'a'-vel végződő szavakat keresni? A két karakter között bármi lehet, kivéve SPACE. egrep 'u[^ ]a'

Hogyan lehetne egy vagy több számjegyből álló szövegre keresni? egrep '[0-9]+‘ egrep ‘[0-9][0-9]*’

Feladatok 1.Hogyan lehetne nem csak egész, hanem valós számokra is keresni? A valós szám a pont (.) karaktert is tartalmazhatja. 2.Hogyan lehetne összevonni a fenti két példát, tehát vagy egész szám vagy egy pontot tartalmazó valós szám? 3.Mi van, ha exponenciális alak is megengedett? 4.Hogyan lehetne egy dátumra keresni, mely tartalmazza az evet, a hónapot és a napot számokkal? Pl: Hogyan lehetne egy programban az 'if' a 'then' vagy 'else' kifejezésekre keresni? 6.Hogyan lehetne egy programban egy szövegre keresni, mely előtt és után dupla aposztróf (") áll, illetve benne nem lehet dupla aposztróf?

Megoldások 1.egrep '[0-9]+\.[0-9]+‘ 2.egrep '[0-9]+|[0-9]*\.[0-9]+‘ 3.egrep '[0-9]+|([0-9]*\.[0-9]+)([eE][-+]?[0-9]+)?' 4.egrep '[12][0-9]{3}-[01][0-9]-[0-3][0-9]' 5.egrep 'if|then|else' 6.egrep '"[^"]"'