8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Hasonló dokumentumok
8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

Operációs Rendszerek II. labor. 2. alkalom

Reguláris vagy szabályos kifejezések

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Operációs rendszerek 2 3. alkalom - Reguláris kifejezések, grep, sed. Windisch Gergely windisch.gergely@nik.uni-obuda.hu

Reguláris vagy szabályos kifejezések

BASH SCRIPT SHELL JEGYZETEK

További vezérlő valamint számításokat megkönnyítő szerkezetek

További vezérlő valamint számításokat megkönnyítő szerkezetek

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

A sed folyamszerkesztő

Példa: Aktuális könyvtár tartalmának fájlba mentése, melynek neve az aktuális dátum és idő: ls l > `date+%f_%h-%m`.txt

Reguláris kifejezések 1.

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Szkriptnyelvek. 1. UNIX shell

1. Alapok. #!/bin/bash

S z á m í t ó g é p e s a l a p i s m e r e t e k

BASH script programozás II. Vezérlési szerkezetek


A sed folyamszerkesztő

A héj vezérlő szerkezetei I.

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Reguláris vagy szabályos kifejezések használata

AWK programozás, minták, vezérlési szerkezetek

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

S z á m í t ó g é p e s a l a p i s m e r e t e k

6. BASH programozás I.

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

Munka állományokkal, könyvtárakkal I.

Operációs Rendszerek Gyakorlat

Operációs rendszerek gyak.

A shell vezérlő szerkezetei I.

Flex tutorial. Dévai Gergely

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Az állományok kezelésére használt fontosabb parancsok

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Számítógép Architektúrák. 4. Gyakorlat

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Operációs rendszerek gyakorlat

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Operációs rendszerek gyak.

AWK programozás Bevezetés

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Programozás alapjai óra. Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján

A legfontosabb DOS parancsok

AWK programozás, minták, vezérlési szerkezetek

Operációs rendszerek 2 1. óra: Linux alapok Ismétlés. Windisch Gergely félév

Alapfogalmak a héj (shell) használatához

Forráskód formázási szabályok

Operációs rendszerek I. - UNIX felhasználói ismeretek és héjprogramozás. Az awk

Szűrők, reguláris kifejezések AWK programozás: minták, vezérlési szerkezetek, tömbök, beépített függvények, reguláris kifejezések

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Alapfogalmak a héj (shell) használatához

Operációs rendszerek 1.

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Operációs rendszerek 1.

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

chmod umask chown, chgrp

Gyors tippek linuxra

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Szűrők Reguláris kifejezések, AWK

HTML ÉS PHP ŐSZI FÉLÉV

1. Írjunk programot mely beolvas két számot és ellenőrzi hogy mindkét szám zérus-e:

Máté: Assembly programozás

I. Felzárkoztató Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

SCILAB programcsomag segítségével

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

I. Specifikáció készítés. II. Algoritmus készítés

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Bevezetés a programozásba I.

C programozás. 1 óra Bevezetés

UNIX/héjprogramozás - awk. Az awk

Folyamatok követése. Tartalom. 1. Folyamatok

Programozás alapjai 2 UNIX dióhéjban. Legfontosabb tulajdonságai. Legfontosabb tulajdonságai/2

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.

Operációs Rendszerek Gyakorlat Triviális segédfeladatok június PERL Tömbök és hashek Feladat: május 26-i beugró

Legfontosabb tulajdonságai. Programozás alapjai 2 UNIX dióhéjban. Legfontosabb tulajdonságai/2. A UNIX rövid története.

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Permutáció n = 3 esetében: Eredmény: permutációk száma: P n = n! romámul: permutări, angolul: permutation

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Programozás I gyakorlat

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Folyamatok kezelése. Az operációs rendszerek egyik legfontosabb feladata a folyamatok kezelése.

Intermec EasyCoder PM4i nyomtató programozásának alapjai Intermec Fingerprint v8.00 nyelven

Operációs Rendszerek. Windows Parancssor

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Hálózatok építése és üzemeltetése

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Parancsok. 1. fejezet Könyvtár- és fájlkezelés

Pere László Linux: felhasználói ismeretek I. Az alapok

Átírás:

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába A gyakorlat célja: 1. A gyakorlat célja a reguláris kifejezések használatának megismerése. A grep parancs használatának elsajátítása 2. További feladatok vezérlőszerkezetekkel, a vezérlőszerkezetek alkalmazása szövegfeldolgozással kapcsolatos feladatokra. Előkészülethez szükséges anyag: 8. előadás segédlete, a grep kézikönyv lapja. A 6-7. előadás vezérlőszerkezeteinek ismétlése. Az egrep color=auto opcióval indítva a sorok listázásakor színessel írja ki az illesztés helyét, ha a terminál ezt támogatja. Ezt beállíthatjuk egy környezeti változóval is, ehhez írjuk az alábbi parancsot a.bashrc állományunk végére: export GREP_OPTIONS='--color=auto' Az alábbi példa illusztrálja ezt: $ echo abcdef egrep abc abcdef $ export GREP_OPTIONS='--color=auto' $ echo abcdef egrep abc abcdef $ A gyakorlat menete: 1. Feladatok az egrep-el...1 2. A $(( )) és (( )) szerkezetek ismétlése...5 3. A grep és egrep használata feltételként...6 1. Feladatok az egrep-el 1.1 Az echo-t és az egrep programot valamint a -o kapcsolót használva, határozzuk meg olyan bővített (extended) reguláris kifejezéseket, amelyek az alábbi sztringekre illeszkednek. Jelölés: a sztringeket egyszerű idézőjelbe zárva adjuk meg, az idézőjel nem tartozik hozzá a sztringhez. A kifejezéseknek a példaként megadott sztringekre illeszkedniük kell. a. A sztring tartalmazza a kis a karaktert. 'a' 'aa bb cc da' b. A sztring tartalmaz egy számjegyet. 'abc 3 def' 1

'2' c. A sztring tartalmazza a + vagy. karaktereket. 'a+2' '.' d. A sztring 2 karaktert tartalmaz amelyek az a, b, c, + vagy? lehetnek. 'bc' '+a' e. Sztring legalább egy kis x karaktert tartalmaz. 'abcxdefá' 'cdexxxxklm' f. A sztring bármennyi kis x karaktert tartalmaz, amelyek egy kis a és egy nagy A között állnak. 'axxxxa' 'axa' 'aa' g. A sztring két kis x között tartalmaz vagy nem tartalmaz nagy X karaktert: 'abc xxx def' 'abc xx def ' h. Egy = karakter után egy egész szám következik, de néha hiányzik és az = jel ott van. 'szám =2' 'szám =27865' 'szám =' i. Egy = karakter után egyszer egy egész szám következik, máskor a nulla szó. 'szám =2' 'szám =27865' 'szám =nulla' j. A sztring legalább 2, de legfennebb 5 kis x-et tartalmaz. 'abcxxdef' 'xxxxxabce' k. A sztring pontosan 1 nagybetűt tartalmaz: 'A' 'B' l. Az üres sztring (nincs egyetlen karakter sem a sorban) '' m. A sztring csak kisbetűket tartalmaz, pl.: 'a' 2

'zb' 'abcxoljhsujhekl' n. A sztring bármennyi számot tartalmazhat, mint az alábbiak: '' '1' '234534' '33' o. A sztring pontosan 1, bármilyen karaktert tartalmaz: 'a' 'A' ';' 'u' p. A sztring legalább 1 nagybetűt, és utána akármennyi kisbetűt tartalmazhat: 'A' 'Az' 'Zkjhguytg' 'Cfs' q. A sztring 2 kisbetűből álló szót, és köztük pontosan egy elválasztó karaktert (üres karakter) tartalmaz. 'erre gyere' 'nincs itt' 'a fejem' r. A sztring legalább 2 de legfeljebb 4 számot tartalmaz: '23' '345' '2367' s. A sztring bármennyi, kisbetűvel írt, és legalább egy szóközzel elválasztott szóból áll: '' 'alma' 'alma hatalma' 'a kis ember' 'a kis ember haza megy' t. A szöveg pontosan egy kisbetűből vagy nagybetűvel írt szóból áll: 'alma' 'ALMA' o. A kifejezés arra a szóra illeszkedik, amellyel valaki egy dátum hónap részét adta meg: '06 'JUN' '-06-' '/06/' 3

u. A kifejezés ellenőrzi egy telefonszám beírását az alábbi formákban: '+40-722-268-595' '0040-722-268-595' '(0)722-268-595' '268595' 268-595' v. A kifejezés olyan kisbetűből álló sztringeket keres, amelyek elhatárolt szavak, tehát csak alfanumérikus illetve _ karaktert tartalmaznak. Az alábbi szövegekben a kiemelt részekre kell kifejezést illeszteni: 'alma' ' egy alma' ',alma,' 'ERRE ARRA,mint az:alma' x. Az olyan számsorokat kell eltalálni, amelyeknek a bal oldalán word karakter, a jobb oldalán pedig szóhatár van: 'a12 ' '324' 'arra678956456 56626626' y. Az olyan szavakat, amelyek beépülnek két word karakter közé: '123' '3almaf' 'abrakadabra' ' palma3;' z. A kifejezés illeszkedjen az olyan sorokra amelyben román autó rendszámtábla van beírva: MS- 02-ABF. 1.2. Az egrep segítségével listázzuk ki a numb.txt -ből: a. Íjuk ki, hányszor fordul elő az 'every' szó: csak az előfordulási számot. b. Írjuk ki a sorokat amelyben az 'every' található c. Írjuk ki azokat a sorokat amelyekben az 'undertow' szó található: utána hívjuk meg az egrep-et úgy, hogy csak a találatokat listázza! d. Írjuk ki azokat a sorokat amelyekben nincs e betű, utána amelyekben nincs x betű! e. Az előbbi feladatnál megjelennek az üres sorok is: hívjuk meg olyan kifejezéssel az egrep-et, hogy a fenti feltételek listázásánál ne jelenjenek meg üres sorok! f. Hívjuk meg úgy az egrep-et, hogy szó listát készítsen a numb.txt valamennyi szavából. Majd végezzük el ugyanezt a bible.txt állománnyal: hány különböző szó van benne? 4

1.3 Operációs rendszerek I. - UNIX felhasználói ismeretek és héjprogramozás, 2009-10-es tanév a. Listázzuk ki egy állománynév név illetve kiterjesztés részét külön külön az egrep-el, pl. alma.txt-ből listázzuk ki külön az alma illetve.txt részeket. b. Egy HTML horgony (anchor, <a>) címke esetében: -emeljük ki a címkét egy akármilyen szövegből -utána listázzuk ki belőle az URL részt, pl. a <a href="http://www.google.com">google</a> sorból csak a http://www.google.com URL-t. 1.4. A szavak illetve words állományok egy magyar illetve angol szókészletet tartalmaznak. Keressünk magyar illetve angol szavakat, amelyek különböző mintáknak tesznek eleget, pl. -melyek azok a magyar szavak amely a-val kezdődnek, b-vel végződnek és 4 betűből állnak? -melyik szavakban van 3, 4, 5, 6 magánhangzó egymás után? -melyik szavakban van ugyanaz 2, 3, 4, 5 kisbetű a szó elején és végén? A magyar változatnál állítsuk be a LANG környezeti változó hu_hu.utf-8 értékre. Írjuk be a.bashrc állomány végére: export LANG=hu_HU.utf-8 2. A $(( )) és (( )) szerkezetek ismétlése 2.1. Írjuk ki a $(( )) segítségével, hogy: -van-e paraméter a parancssoron -az első argumentum nagyobb-e mint a második -ha pl. 3 argumentumot várunk, írjuk ki külön-külön ha túl kevesebb vagy több argumentummal indították a programot. 2.2. Írjunk while ciklist amelyik a (( )) szerkezetet használja: végezzünk el annyi ciklust amennyit a parancssor első argumentumában megadunk. 2.4. Járjuk végig while ciklussal és (( )) szerkezettel a parancssor argumentumait, és case szerkezettel döntsük el, hogy egy-egy argumentum megfelel-e az alábbi mintáknak: -egy karakteres számjegy -kapcsoló: keressük a -c és -n kapcsolókat -3 kisbetű után egy nagybetű jön 2.4. Írjunk egy kis programot amelyik kiír egy sort egy bizonyos karakterből. Az alábbi kapcsolókat használjuk: -c kar : a kar karaktert írja ki, ha nem adjuk meg implicit érték a # -n szám : csak n karaktert ír ki, ha nem adjuk meg implicit értéknek a 72-t 5

3. A grep és egrep használata feltételként Az alábbi kis példában az egrep-et használjuk feltételként. A program megnézi, hogy a $1 paraméter végződése.txt -e? #!/bin/bash if [ -z $1 ];then echo "kerek egy argumentumot!" exit 1 fi if echo $1 egrep '\.txt$' >/dev/null 2>&1 then echo az argumentum sztring vegzodese '.txt' fi A standard kimenet és hibakimenet egyaránt a null eszközre van irányítva, mert nincs szükségünk rá: csak az érdekel, hogy az egrep talált-e vagy nem. Írjunk egy programot, amelyik egy állományból (pl. egy bash szkript állományból) kiírja azokat a sorokat amelyek # karakterrel kezdődnek, mindaddig amíg megjelenik az első sor amelyik nem # karakterrel kezdődik ( neve legyen: getkomment.sh ). 6