Operációs rendszerek gyakorlat

Slides:



Advertisements
Hasonló előadás
Operációs rendszerek gyakorlat 10. Gyakorlat Vakulya Gergely.
Advertisements

Táblázat kezelő programok
LINUX/UNIX PARANCSOK.
JavaScript.
Sztringek.
Sztringek  Az fscanf() és a fprintf() függvényeknél a %s-es formátumtagot kell használni.  A %s formátumtag az első white space karakterig folytatja,
Bevezetés a Java programozásba
Bevezetés a Java programozásba
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Adatbázis alapú rendszerek
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek.
Programozás II. 3. Gyakorlat C++ alapok.
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
UNIX Összefoglaló az alapokról a ta65 tárgyhoz ( )
Programozás I. Horváth Ernő.
Scriptnyelvek 9. gyakorlat Papp Gyula április 29.
PHP Webprogramozás alapjai
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
S ZÖVEG ÍRÁSA. Kurzor: megmutatja, hogy hová írunk. Szabályok: Felesleges szóközöket ne helyezzünk el a szövegben! Sorok végén nem szabad Entert ütni,
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 gyakorlat Fájlműveletek.
Vizuális és web programozás II.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Microsoft Excel Függvények II.
Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely.
Operációs rendszerek gyakorlat 2. Gyakorlat Vakulya Gergely.
Operációs rendszerek gyakorlat 6. Gyakorlat Vakulya Gergely.
Operációs rendszerek gyakorlat 9. Gyakorlat Vakulya Gergely.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Összetett adattípusok
Összetett adattípusok a Pascal nyelvben
Programozási nyelvek Páll Boglárka.
A Pascal programozási nyelv alapjai
A Pascal programozási nyelv alapjai
Tömbök és programozási tételek
Fájlkezelés Pascalban
Szintaktikai, szemantikai szabályok
1.3. Pascal program felépítése Az els ő program. Program ; … Begin … End. Program fej Deklarációs rész Végrehajtó rész.
Körlevél.
1 Operációs rendszerek I, 3. gyakorlat Windisch Gergely
Készítette: Csíki Gyula
Programozási alapismeretek 11. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom  Rendezési.
Visual Basic 2008 Express Edition
Java programozási nyelv Vezérlési szerkezetek
Java programozási nyelv Filekezelés
Komoróczy Tamás 1 Java programozási nyelv Stringek.
Csempe Programozás érettségi mintafeladat
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Webprogramozó tanfolyam
Objektum orientált programozás
V 1.0 ÓE-NIK-AII, Programozás I. Karaktersorozatok Feladatok.
ACCESS Lekérdezések, űrlapok, jelentések
Power Lutár Patrícia Pellek Krisztián.  -ltLess than  -leLess than or equal to  -gtGreater than  -geGreater than or equal to  -eqEqual to  -neNot.
Táblázatkezelés KÉPLETEK.
Operációs rendszerek gyakorlat sed parancsok.
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
C Programozási alapok.
Statisztikai és logikai függvények
Készítette: Rummel Szabolcs Elérhet ő ség: Linux kezelése.
PHP függvények MySQL adatbázisok kezelésére
Script nyelvek előadás
AWK ismétlés AWK: adatvezérelt nyelv:
Total commander.
Programozás C# -ban Elágazások.
A CLIPS keretrendszer
Programozási nyelvek alapfogalmai
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

Operációs rendszerek 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 (a reguláris kifejezés alapján) Lecserél (az illesztett mintát a helyettesítő szövegre) Kiír (képernyőre, fájlba) Pl.: sed ‘s/nappal/este’ file_in file_out sed ‘s/nappal/este’ file_in

Példa sed ‘s/nappal/este/’ file_in file_out s search parancsot jelezi /../../ a per jel az elválasztó jel (más is lehet, #) nappal egy reguláris kifejezés este a helyettesítendő szöveg sed ‘s#nappal#este#’ file_in file_out

& jel Ha a reguláris kifejezésre illesztett szöveget is fel szeretnénk használni a helyettesítő szövegben - & jellel megtehető. Pl.:ki akarjuk egészíteni a szöveget, stb. pl. ha zárójelbe akarjuk tenni: sed ‘s/[0-9]/(&)/’ file_in file_out sed ‘s/[0-9]/(&)/’ file_in

Globális csere Alapesetben csak az első illeszkedést cseréli Ez kiterjeszthető a teljes (globális) szövegre: sed ‘s/[0-9]/(&)/g’ file_in

Illeszkedő kifejezés egy része Ha az illeszkedő reguláris kifejezés egy részét kívánjuk csak felhasználni: Ekkor a tárolni kívánt részt tegyük zárójelbe () a reguláris kifejezésben Megjegyzés: a zárójel speciális karakter, így védeni kell a speciális jelentéstől backspashekkel: \( \) A helyettesítő részben pedig használjuk a \1 karaktersort sed ‘s/\([0-9]*\)/(\1)/g’ file_in Több ilyen rész is kijelölhető, mindegyikre a számával hivatkozhatunk: \1 , \2, \3, …, \9 ez hasznos lehet pl. felcserélésnél sed ‘s/\([0-9]*\)\([a-z]* \)/\2\1/g’ file_in

String törlése \l karakter segítségével sed ‘s/\([0-9]* \)/\l/g’ file_in Más megoldás?

Példa Cseréljük fel a stringben a betűket és számokat. sed ‘s/\([a-z]*\) \([0-9]* \)/\2\1/g’ file_in abc123 123abc

Feladat Tegyük zárójelbe a számokat, de ne egyesével, hanem csoportosan: sed ‘s/\([0-9]\)/(&)/g’ file_in sed ‘s/\([0-9]*\)/(&)/g’ file_in sed ‘s/\([0-9]+\)/(&)/g’ file_in sed ‘s/\([0-9]\+\)/(&)/g’ file_in sed ‘s/\([0-9][0-9]*\)/(&)/g’ file_in abc123  abc(1)(2)(3) abc123  abc(123)

Feladatok Egy ’honap.txt’ nevű fájlban hogyan cserélné le a january hónap nevét 01. számra,mely után zárójelben szerepeljen az eredeti név is: january  01. (january) Egy szövegben titkosítani ‘kellene’ a neveket. Hogyan cserélné le a nagybetűvel kezdődő, utána csak kisbetűket tartalmazó neveket ‘xxx’ karaktersorra: Barbara  xxx Elírás történt egy fájlban. Hogyan cserélné le a 19-cel kezdődő évszámokat 20-val kezdődőre. (évszám 4 karakter!): 1908  2008 Töröljön ki egy konyv.txt nevű állományban minden a betűt! Hogyan cserélne le egy állományban kis vagy nagy A-val kezdődő, számot nem tartalmazó, kis vagy nagy Z-re végződő szavakat 3 darab nagy A-ra?

Operációs rendszerek gyakorlat awk parancsok

Awk parancs A.V. Aho P.J. Weinberger B.W. Kernighan 1977. AT&T Bell Lab Újabb verziói: gawk mawk Felhasználása: programozási nyelv implemetálására assembler

awk Adatvezérelt programozási nyelv Szintaxisa Adat + mit kell vele csinálni Szintaxisa awk ‘/minta/{parancs}’ file Minta, ami illeszkedik egy szövegdarabra, és a művelet. Minta: per jelek közé, reguláris kifejezés. Illeszkedés esetén futtatja a parancsrészt. Egyéb esetben nem történik semmi. Több mint és parancs is megadható.

Legegyszerűbb eset Ha nem adunk meg mintát Ekkor a fájl minden sorát fel akarjuk dolgozni Pl.: kinyomtatni awk ‘{print}’ file

Feladat Hozzunk létre egy foo_test nevű fájlt a következő tartalommal: awk ‘{print}’ foo_test awk ‘/foo/ {print}’ foo_test foo 12 4 bar 21 6 alma 3 7 foot 4 8 mofoo 5 9 korte 6 5 7 foo 1

Két szabály megadása Több sorban egy aposztófon belül megadható több szabály is: awk ‘/12/ {print „Bingo”} /21/ {print „Bongo”}’ foo_test

Elválasztó jelek Rekordok Mezők A program a bemeneti fájlt rekordokban olvassa be, és dolgozza fel. Alapesetben a rekordelválasztó jel a \n sortörés – azaz soronként történik a feldolgozás. Ez a jel az RS (record separator) változóban van eltárolva. Mezők A rekordok mezőkre vannak osztva. Alapesetben a mezőelválasztó a TAB, SPACE vagy újsor. Egy mezőre a $ jellel hivatkozhatunk: első mező a $1, második a $2, stb. Az awk tudja, hogy az aktuális rekordban hány mező van – amit az NF (number of field) változóban tárol Ezek a változók felhasználhatók az awk-ban.

Példa echo ‘Ez egy hosszú sor’ | awk ‘{print $4 $3 $2 $1}’ echo ‘Ez egy hosszú sor’ | awk ‘{print NF}’ Feladat: Nyomtassuk ki a sor utolsó mezőjét, ha nem tudjuk pontosan hány mezőből áll a sor!

Mi az $0? $0 – jelentése a teljes rekord Pl.: egy teljes fájl kinyomtatása: awk ‘{print $0}’ file

Több parancs kiadása Lehetséges, egymással ;-vel elválasztva, mint a C-ben awk ‘{print $0; print $0}’ file

Műveletek mezőértékekkel Az awk képes egy adott szöveget szövegként és számként is kezelni. awk ‘{print $1”:” $2+$3}’ file Megjegyzés: nincs hiba, ha szöveget kell kezelni, ekkor a számérték 0.

Begin –End minták Begin minta – a bemeneti fájlok feldolgozása előtt illeszkedik és fut le End minta – fájlok feldolgozása után használható Pl.: awk ‘BEGIN {sum = 0} {sum = sum + $3} END {print „Az összeg: ” sum}’ test

Matematikai műveletek awk-ban változó = érték értékadás - x negálás x + y összeadás x - y kivonás x * y szorzás x / y osztás x ^ y hatványozás x % y modulo osztás x++ növelés ++x növelés x-- csökkentés --x csökkentés

Igaz, hamis, logikai x < y x <= y x > y x >= y x == y x && y x ÉS y x || y x VAGY y !x NEM x

Vezérlés átadó kifejezések if feltétel { művelet } else while ( feltétel ) { műveletek } for (inicializalas ; feltétel ; növelés )

Egyszerűbb feladatok Mit csinál és mi a különbség az awk parancsban megadott /foo/{print}{print} és a /foo/{print; print} között Hogyan számolná meg awk parancs segítségével, hogy a Tuskevar nevű fájlban hány embert hívnak Tutajosnak? (Egy sorban többször is szerepelhet a szó!) Nyomtassa ki a képernyőre az /etc/passwd fájlban lévő felhasználó azonosítókat!

Feladatok Nyomtassunk ki egy file-ból minden második mezőt Nyomtassuk ki a számokat 1-tol 10-ig Nyomtassuk ki a sorok számat egy file-ban, mint a wc parancs. Hogyan lehetne minden második sort kinyomtatni: Írjuk ki azokat a felhasználókat, akik le vannak tiltva. A letiltás azt jelenti hogy egy * jel van a jelszó helyén: Nagyon sok függvényt ismer az AWK, pl a length a szöveg hosszát adja meg. Így hogyan lehetne a leghosszabb sor méretét kinyomtatni? Írjunk programot, mely ugyanúgy működik, mint a wc program, vagyis kiírja a sorok, szavak és karakterek számat:

Megoldások 1. awk '{ for(i=1; i<=NF; i+=2) print $i }' test 2. awk 'BEGIN { for(i=1; i<=10; i++) print i}‘ 3. awk 'END { print NR }' test vagy awk 'BEGIN { s=0;} {s = s + 1} END { print s}' test

Megoldások 4. awk '{ if ( NR % 2 == 0 ) print $0}' test 5. awk 'BEGIN { FS=":" } {if ($2 == "*") print $1 " letiltva"}' /etc/passwd 6. awk '{ if (length($0) > max ) max = length($0) } END { print max }' test 7. awk '{szo = szo + NF; kar = kar + length($0)} END{ print NR,szo,kar}