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

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

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

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

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

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

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.

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

Operációs rendszerek. 3. gyakorlat. Jogosultságkezelés, linkelés, csővezeték UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 1. gyakorlat. Bevezetés, követelmények UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek gyak.

1. Alapok. #!/bin/bash

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

BASH SCRIPT SHELL JEGYZETEK

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

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

Szkriptnyelvek. 1. UNIX shell

chmod umask chown, chgrp

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

6. BASH programozás I.

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

Bevezetés jogosultságkezelés, csővezeték, átirányítások. BASH script programozás

2018, Funkcionális programozás

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

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

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

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

Operációs rendszerek gyak.

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

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

Operációs rendszerek 1.

1. Egyszerű (primitív) típusok. 2. Referencia típusok

AWK programozás Bevezetés

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

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

1. Alapok. Programozás II

Programozás I. 1. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

Java-s Nyomtatványkitöltő Program Súgó

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)

Rendszerprogramozás Linux környezetben

Programozás I. házi feladat

BATCH Programozás. Tartalomjegyzék

Operációs rendszerek gyakorlat

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

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

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

Operációs Rendszerek Gyakorlat

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

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

Informatika terméktervezőknek

Bevezetés jogosultságkezelés, csővezeték, átirányítások. BASH script programozás

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

Operációs Rendszerek. Windows Parancssor

PYTHON. Avagy hosszú az út a BioPythonig

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

Operációs rendszerek gyakorlat

A programozás alapjai 1 Rekurzió

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

8. gyakorlat Pointerek, dinamikus memóriakezelés

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

M-Fájlok létrehozása MATLAB-ban

Bevezetés a Python programozási nyelvbe

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

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

A legfontosabb DOS parancsok

Bevezetés a programozásba I.

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Programozás C++ -ban 2007/1

Programozás alapjai 9.Gy: Struktúra 2.

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

INFORMATIKA javítókulcs 2016

Szkeleton beadása. 100 Generalis faliora. Csapattagok: Konzulens: Szabó András március 29.

Bevezetés a Python programozási nyelvbe

Bevezetés a programozásba I.

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

SQLServer. Particionálás

C programozási nyelv Pointerek, tömbök, pointer aritmetika

A számok kiíratásának formátuma

A perzisztens adatkezelő rendszer tesztelése és demonstrálása a GRID környezetben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

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

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

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)

Felvételi tematika INFORMATIKA

Thermo1 Graph. Felhasználói segédlet

Eljárások és függvények

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

INFORMATIKAI ALAPISMERETEK

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Szövegek C++ -ban, a string osztály

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

A shell vezérlő szerkezetei I.

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

A C programozási nyelv II. Utasítások. A függvény.

A Cobra Sprint telepítése CobraContoLight felhasználók számára

Átírás:

UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 1 / 12

BASH - függvények function [függvénynév] {[parancslista]} [függvénynév]() {[parancslista]} BASH-ban, a legtöbb programozási nyelvtől eltérően, a függvényeknek nincs visszatérési típusuk, visszatérési értékük sem lehet Létezik return itt is, azonban ezzel a függvény kilépési állapotát írhatjuk le (hasonló mint az exit) Az értékkel való visszatérést parancs behelyettesítéssel tudjuk elérni A függvény paraméterekkel való meghívása, valamint ezek használata hasonlóan történik, mint a shell script hívása és futtatása esetén Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 2 / 12

BASH - lokális- és környezeti változók Az eddigi változókat, melyeket használtunk, shell változóknak nevezzük Ezek a változók csak az aktuális shellből láthatók export [név]=[érték]: az újonnan létrehozott változót az alshell is látni fogja Ezzel szemben a környezeti változók minden shellből elérhetőek env, printenv: környezeti változók kilistázása Ismertebb környezeti változók: HOME, PATH, SHELL, stb. Ezeken felül léteznek még ún. lokális változók is, melyek csak abban a blokkban elérhetőek, ahol definiálva lettek local kulcsszóval lehet definiálni Ha függvényen belül definiálunk ilyet, az csak a függvény törzsében lesz elérhető Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 3 / 12

BASH - függvények, lokális változók #! /bin/bash function osszead { local eredmeny=$(($1 + $2)) echo "$eredmeny" } osszeg=$(osszead 1 2) echo $osszeg os09_2.sh Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 4 / 12

BASH - read read [változónév]: A billentyűzetről (szabványos bementről) beolvasott szöveg az ENTER leütése után a megadott változó új értéke lesz Ha nem adunk meg nevet, akkor a beolvasott szöveg sehova se lesz eltárolva. Hasznos, ha pl. ENTER leütésére akarunk várakozni, végjelig való beolvasás, stb. A felhasználó a szöveg beírása közben használhatja a szerkesztő billentyűket és a szövegben tetszőleges karaktereket elhelyezhet Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 5 / 12

BASH - tömbök [tömbnév]=([értéklista]) Definiáláskor nem kell megadni a maximális elemszámot Indexelni sem szükséges folyamatosan Az indexelés 0-től kezdődik [tömbnév][szám]: [szám]-adik elem elérési a tömbből ${[tömbnév][*]}: a tömb összes eleme ${#[tömbnév][@]}: a tömb elemszáma #! /bin/bash tomb=("alma" "körte" "barack") elemszam=${#tomb[@]} for (( i=0; i<$elemszam; i++ )) do echo "${tomb[${i}]}" done os09_1.sh Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 6 / 12

Reguláris kifejezések A reguláris kifejezés (regular expression, regexp, RE) egy szöveg bizonyos részére illeszkedik, ezzel segítve a mintakeresést, mintafeldolgozást Bár a filozófiájuk hasonló, de a reguláris kifejezéseket nem szabad összekeverni az állományneveknél használható mintákkal és mintaillesztő karakterekkel! Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 7 / 12

Grep szűrő grep [reguláris_kifejezés][állománynév]: Kiírja a megadott állomány mindazon sorait, amelyek illeszkednek a reguláris kifejezésre Ha nem adunk meg állományt, akkor a szabványos bemenetről olvas -c: Az illeszkedő sorok tartalma helyett csak azok száma jelenik meg -n: az illeszkedő sorok tartalma elé a sorszámukat is kiírja -o: a sorokból csak az illeszkedő részt jeleníti meg Gyakorlatban az egrep parancs használata ajánlott (ld. következő óra) Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 8 / 12

Miért BASH? BASH-on kívül léteznek más script nyelvek is Perl: https://hu.wikipedia.org/wiki/perl_(programozási_nyelv) Python: https://hu.wikipedia.org/wiki/python_(programozási_nyelv) BASH hátrányai: Nincs magasabb szintű adatszerkezet (láncolt lista, map, stb.), ezért adatbázis műveleteket nehézkesek Egy program megírása elbonyolódhat Bizonyos esetekben lassabb mint más nyelvek (pl: DASH) BASH előnyei: Sok helyen elérhető, ahol a fentiek nem Programokat össze tud kötni (pipeline) Kisebb programok hatékonyabbak Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 9 / 12

BASH, hol? Web telepítés Rendszer adminisztráció Automatikus biztonsági mentés Környezeti változók meglétének ellenőrzése Alkalmazás telepítő scriptek Adatfeldolgozás (data crunching) http://www.bashcookbook.com/bashinfo/ http://smarterware.org/2009/05/happy-birthday-todotxt-cli/ http://www.railstips.org/blog/archives/2009/02/02/bedazzle-yourbash-prompt-with-git-info/ Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 10 / 12

Feladatok I Írj olyan bash scriptet amelynek egy bemeneti paramétere van, és addig olvassa be az aktuális könyvtárban lévő állományokat, amíg azok tartalmában meg nem találta a megadott paramétert. Ha ez megtalálható, akkor írja ki a fájl nevét, melyben először előfordult, valamint hogy hanyadik sorban találta meg a szöveget. Ha nem találta meg, akkor írja ki, hány fájl nézett át. (os09_3.sh) Írj olyan scriptet, ami egy bemeneti paramétert vár: egy számot. Iteráljon végig az aktuális könyvtár elemein, és adja össze a közönséges állományok méretét. Ha ez az összesített méret meghaladja a paraméterben kapott számot, akkor az elkövetkező fájlokat másolja át egy "nagy" elnevezésű mappába, majd írja ki ezek nevét. Az implementáláshoz használj függvényt! (os09_4.sh) Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 11 / 12

Feladatok II Írj olyan scriptet, ami -1 végjelig kér be számokat a billentyűzetről, ezeket összeadja, majd az eredményt kiírja a képernyőre. (os09_4.sh) http://www.spoj.com/problems/willitst/ *(WILLITST.sh) Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 12 / 12