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

Hasonló dokumentumok
Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH 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

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

Operációs rendszerek. 3. gyakorlat. Jogosultságkezelés, linkelés, csővezeték 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

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

Szkriptnyelvek. 1. UNIX shell

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

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

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

BASH SCRIPT SHELL JEGYZETEK

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

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

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

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

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

1. Alapok. #!/bin/bash

AWK programozás Bevezetés

chmod umask chown, chgrp

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

Operációs rendszerek 1.

Operációs rendszerek gyak.

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

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

2018, Funkcionális programozás

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

6. BASH programozás I.

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

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

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

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

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

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

Informatika terméktervezőknek

Bevezetés a Python programozási nyelvbe

1. Alapok. Programozás II

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

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)

PYTHON. Avagy hosszú az út a BioPythonig

Operációs rendszerek gyakorlat

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

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

Konzolalkalmazások gyors tesztelése

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

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

Rendszerprogramozás Linux környezetben

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

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

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

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

Bevezetés a programozásba I.

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

Operációs Rendszerek. Windows Parancssor

A shell vezérlő szerkezetei I.

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

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

A sed folyamszerkesztő

Programozás C++ -ban 2007/1

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

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

Rekurzió. Dr. Iványi Péter

A programozás alapjai 1 Rekurzió

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

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

Reguláris kifejezések 1.

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

Tájékoztató. Használható segédeszköz: -

3D-s technológiák a játékfejlesztésben UDK bevezetés

Operációs rendszerek gyakorlat

Programozás I. gyakorlat

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

BATCH Programozás. Tartalomjegyzék

Flex tutorial. Dévai Gergely

C++ programozási nyelv

Programzás I gyakorlat

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

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

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

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

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

MATLAB alapismeretek I.

INFORMATIKA javítókulcs 2016

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

PHP. Adatbázisok gyakorlat

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

Bevezetés a Python programozási nyelvbe

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

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

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Átírás:

UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH recap, reguláris kifejezések 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 változók Eddig láttunk már shell és környezeti változókat: környezeti változók minden shellből elérhetőek a shell változók csak az aktuális shellből láthatók 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_1.sh Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 4 / 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_2.sh Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 6 / 12

Miért BASH? BASH-on kívül léteznek más szkript nyelvek is hasonló feladatokra: 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

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

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ájlt 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_5.sh) http://www.spoj.com/problems/willitst/ *(WILLITST.sh) Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 12 / 12