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

BASH SCRIPT SHELL JEGYZETEK

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

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

Reguláris vagy szabályos kifejezések

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

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

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

A sed folyamszerkesztő

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

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

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

Szkriptnyelvek. 1. UNIX shell

Reguláris kifejezések 1.

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

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

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


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. #!

A sed folyamszerkesztő

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

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

6. BASH programozás I.

Operációs rendszerek gyak.

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

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

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

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

A héj vezérlő szerkezetei I.

Operációs rendszerek 1.

A shell vezérlő szerkezetei I.

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

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

Operációs Rendszerek Gyakorlat

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)

chmod umask chown, chgrp

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

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

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

A legfontosabb DOS parancsok

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

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

AWK programozás Bevezetés

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

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

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

Operációs rendszerek 1.

Bevezetés az informatikába, második gyakorlat. Bevezetés Környezetváltozók és néhány egyszerű utasítás Jogosultságok Fájlkezelés

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

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

Operációs rendszerek gyak.

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

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

Operációs rendszerek gyakorlat

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

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

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

Operációs rendszerek I. IIII. gyakorlat

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

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

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

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

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

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

Flex tutorial. Dévai Gergely

Makrók használata az Excelben - Makróhibák kezelése, biztonságos jelszavak generálása

BATCH Programozás. Tartalomjegyzék

Youtube videó letöltés és konvertálás Linuxon

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

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

Lekérdezések az SQL SELECT utasítással

O er e á r ci c ós ó s R en e d n sz s er e e r k e I. G akorlá l s

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

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

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

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

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

Gyors tippek linuxra

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

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

Powershell 1. gyakorlat

HTML ÉS PHP ŐSZI FÉLÉV

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

3. Gyakorlat Ismerkedés a Java nyelvvel

Programozási nyelvek Java

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

A programozás alapjai

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

Operációs Rendszerek példatár. Utolsó frissítés: február 10.

Unix-Linux alapok II. gyakorlatvezető: Lutár Patrícia

Entity Framework alapú adatbáziselérés

Á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. További feladatok vezérlőszerkezetekkel...4 3. A $(( )) és (( )) szerkezetek átismétlése...4 4. A grep és egrep használata feltételként...4 1. Feladatok az egrep-el 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. Az üres sztring (nincs egyetlen karakter sem a sorban) b. A sztring csak kisbetűket tartalmaz, pl.: 'a' 'zb' 'abcxoljhsujhekl' c. A sztring bármennyi számot tartalmazhat, mint az alábbiak: 1

'1' '234534' '33' d. A sztring pontosan 1 nagybetűt tartalmaz: 'B' e. A sztring pontosan 1 bármilyen karaktert tartalmaz: 'a' ';' 'u' f. A sztring legalább 1 nagybetűt, és utána bármennyi kisbetűt tartalmazhat: 'Az' 'Zkjhguytg' 'Cfs' g. 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' h. A sztring legalább 2 de legfeljebb 4 számot tartalmaz: '23' '345' '2367' i. A sztring bármennyi, kisbetűvel írt, és legalább egy szóküzzel elválasztott szóból áll: 'alma hatalma' 'a kis ember' 'a kis ember haza megy' j. A szöveg pontosan egy kisbetűből vagy nagybetűvel írt szóból áll: 'ALMA' k. A kifejezés arra a szóra illeszkedik, amellyel valaki egy dátum hónap részét adta meg: '06 'JUN' 'June' '-06-' '/06/' l. A kifejezés ellenőrzi egy telefonszám beírását az alábbi formákban: 2

'+40-722-268-595' '0040-722-268-595' '(0)722-268-595' '268595' 268-595' Operációs rendszerek I. - UNIX felhasználói ismeretek és héjprogramozás m. 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: ' egy alma' ',alma,' 'ERRE ARRA,mint az:alma' n. Az olyan számsorokat kell eltalálni, amelyeknek a bal oldalán szavakat felépítő karakter, a jobb oldalán pedig szóhatár van: 'a12 ' '324' 'arra678956456 56626626' k. Az olyan szavakat, amelyek beépülnek két szavakat felépítő karakter közé: '123' '3almaf' 'abrakadabra' ' palma3;' 2. A kifejezés illeszkedjen az olyan sorokra amelyben román autó rendszámtábla van beírva: MS-02-ABF. 3. 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. 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. 3

b. Egy HTML anchor címke esetében: -emeld ki egy akármilyen szövegből -utána listázd ki belőle az URL részt: <a href="http://www.google.com">google</a> 5. 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. melyik az a magyar szó amely a-val kezdődik, b-vel végződik és 4 betűből áll? A magyar változatnál állítsuk be a LANG környezeti változó hu_hu.utf-8 értékre. ha nincs, akkor Írjuk be: export LANG=hu_HU.utf-8 2. További feladatok vezérlőszerkezetekkel 1. Írjuk meg ismét a programot amely átnevez minden.sh típusú állományt.bash típusúvá egy könyvtárban. Az állomány típus karakterláncának leválasztásakor használjuk fel ezúttal az egrepet. A program legyen nagyon biztonságos: nehogy véletlenül is elvesztődjenek az állományok az átnevezés alatt (tehát ellenőrizzünk minden pontot a programban, ahol hiba állhat elő). 3. A $(( )) és (( )) szerkezetek átismétlése 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. Írjunk while ciklist amelyik a (( )) szerkezetet használja: végezzünk el annyi ciklust amennyit a parancssor első argumentumában megadunk. 3. 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 Í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, iha nem adjuk meg implicit érték 72 4. 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? 4

#!/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. Feladat: Í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 ). Használjuk fel a cut programot a # karakter sor eleji kivágására. 5