Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

2010/2011-2 Operációs rendszerek awk. Beadási mód Tar file File neve hxxxxxx.tar Pl. h123456.tar A tar egy könyvtárt tartalmaz A könyvtár neve hxxxxxx/

Hasonló előadás


Az előadások a következő témára: "2010/2011-2 Operációs rendszerek awk. Beadási mód Tar file File neve hxxxxxx.tar Pl. h123456.tar A tar egy könyvtárt tartalmaz A könyvtár neve hxxxxxx/"— Előadás másolata:

1 2010/2011-2 Operációs rendszerek awk

2 Beadási mód Tar file File neve hxxxxxx.tar Pl. h123456.tar A tar egy könyvtárt tartalmaz A könyvtár neve hxxxxxx/ Pl. h123456/ A könyvtárban van elhelyezve a feladat megoldása h123456.awk Ha shell script is tartozik a megoldáshoz, akkor azt is el kell helyezni h123456.sh néven Ha a feladathoz tartozik példa állomány, akkor a könyvtárban azt is el kell helyezni az alábbi néven adat.txt

3 Beadási mód A file tartalmazzon egy fejlécet a parancsértelmező fejléc után #! /bin/bash #################### # Nev: Karacsony Szilveszter # EHA-kód: VALAMI.SZE # h-azon.: h123456 # Feladat: 1. feladat # Gyak.vez.: Kozma Attila ####################

4 Beadási mód 0 pont Ha nem a megadott módon lesz beküldve a feladat!!!

5 Határidő biro.inf.u-szeged.hu Aki még nem regisztrált REGISZTRÁLJON!!! http://biro.inf.u-szeged.hu/regiszt 2011. május 1. 23:59:59 A feladatok ki vannak/lesznek osztva a biro szerveren. Nem fog ellenőrizni!!! Többször is fel lehet tölteni (10) Utolsó feltöltés számít Időben kezdjenek hozzá a megoldáshoz!!!

6 1. feladat Írjon awk szkriptet, ami egy nyomtatóra küldött feladatok napló fájljából összesíti a felhasználók havi nyomtatási oldalszámait. Emellett jelenítse meg, hogy az adott felhasználónak mennyit kell fizetnie a nyomtatásért, ha egy oldal 6 Ft. Végül összesítse a havi forgalmat és írja ki az utolsó sorba a kinyomtatott oldalak számát és a bevételt. A felhasználókat név szerint növekvő sorrendben jelenítse meg. A naplófájl szerkezete (a mezők szóközökkel elválasztva): USER NYOMTATOTT_OLDALAK PELDANYSZAM Egy felhasználó oldalszámai kiszámíthatók a NYOMTATOTT_OLDALAK * PELDANYSZAM képlettel nyomtatási feladatonként.

7 1. feladat példa INPUT $ cat logfile pityuka 3 1 marcsi 2 1 pityuka 2 2 OUTPUT $./print_log.awk logfile marcsi 2 old. - 12 Ft pityuka 7 old. - 42 Ft --- Osszesen: 9 old. - 54 Ft

8 2. feladat Írjon awk szkriptet, ami egy cég beléptető kártyás nyilvántartórendszer havi naplófájlját kapja paraméterül, majd feldolgozza az alkalmazottak ki- és belépési adatait. A naplófájl tartalmazza a dolgozók nevét, a munkavégzés kezdetének és végének időpontját. Számolja ki a két időpont között eltelt időt és összesítse a ledolgozott munkaórákat az adott hónapra. Az emberek a ledolgozott munkaórák szerint kapnak fizetést és az egy napra előírt órák mennyisége 8 óra. Ha valaki kevesebbet dolgozik büntetést, ha többet jutalmat kap, ezért ezeket is összesíteni kell további két oszlopban. Végül minden emberre ki kell számolni, hány napot dolgozott a hónapban. A bemenet formátuma (a mezők pontosvesszővel elválasztva): NEV;KEZDES(HH:MM);VEG(HH:MM) A kimenet formátuma (az elválasztó karakter tabulátor): NEVLEDOLGOZOTT(HH:MM)TOBB(HH:MM)KEVESEBB(HH:MM)NAPOK

9 2. feladat példa INPUT $ cat marcius.txt Béna Béla;05:10;13:15 Dolgozó Emília;06:00;14:00 Kovács Cecília Emese;06:00;15:00 Dolgozó Géza;06:00;12:00 Béna Béla;05:10;13:15 Dolgozó Emília;06:00;14:00 Kovács Cecília Emese;06:00;15:00 OUTPUT $./osszesit.awk marcius.txt Béna Béla16:100:100:002 Dolgozó Elmília16:000:000:002 Kovács Cecília Emese18:002:000:002 Munkás Géza6:000:002:001

10 3. feladat Írjon awk szkriptet, ami ellenőrzi a megadott fájlban szereplő felhasználói adatokat (felhasználó név, e-mail cím, jelszó, felhasználói csoport, HOME könyvtár). Az adatok formája a következő (pontosvessző az elválasztó karakter): USERNEV;E-MAIL;JELSZO;CSOPORT;HOME_KONYVTA A mezőkre ezek a megszorítások vannak érvényben: Minden sorban pontosan öt mező szerepel (ha ez nem teljesül a többit nem kell vizsgálni) USERNEV és CSOPORT: csak az angol ábécé kis- és nagybetűit, valamint számokat tartalmazhat. Nem kezdődhet számmal E-MAIL: AZONOSITO@HOST.DOMAIN,AZONOSITO@HOST.DOMAIN ahol az AZONOSITO csak az angol ábécé kis- és nagy betűit, számokat és. (pont) karaktert tartalmazhat, úgy, hogy pontot nem követhet egy újabb pont a HOST-ban csak az angol ábécé kisbetűi és a - szerepelhetnek és egymás után több HOST-ot is meg lehet adni ponttal elválasztva (pl.: stud.u-szeged) DOMAIN legalább kettő, legfeljebb három karakterből (angol ábécé kis betűi) álló azonosító (pl.: hu, com, org, edu, …) JELSZO: angol ábécé kis- és nagybetűi, számok, \, _, / HOME_KONYVTAR: abszolút útvonalat kell megadni A mezők tartalmaznak legalább egy karaktert. Ha egy sor valamelyik szabályt megsérti írja ki a képernyőre a sor számát és a megsértett szabályt szöveggel. Azt is jelezze, ha minden szabály érvényes egy adott sorra.

11 3. feladat példa INPUT $ cat users.txt h123456;h123456@stud.u-szeged.hu;123*122;hallgatok;home/h123456h123456@stud.u-szeged.hu h1283; h654321;h654321@stud.u-szeged.hu;123/122;hallgatok;/home/h654321h654321@stud.u-szeged.hu OUTPUT $./validateUsers.awk users.txt 1. sor: rossz a jelszo formatuma (123*122)! 1. sor: rossz a home konyvtar formatuma (home/h123456)! 2. sor: nincs 5 rekord megadva! 3. sor: OK!

12 4. feladat Írjon szkriptet, ami első paraméterként az ls -l parancs kimenetét várja. A szkriptnek meg kell keresnie a listából a log-fájlokat, majd csökkenő sorrendben ki kell írnia, hogy az adott típusú log-fájlból mennyi van. A log-fájlok alakja: 'vmi.log'. Az ilyen típusú további log- fájlok: 'vmi.log.1', 'vmi.log.2'... A kikötés csak annyi, hogy az eredeti nevet egy pont majd egy számjegy kövesse. Tehát pl. a 'vmi.log.5.gz' is 'vmi.log' típusú log fájl. (Megjegyzés: Ilyen fájlokat nagy eséllyel találsz a /var/log mappában.)

13 4. feladat példa INPUT összesen 15 drwxr-xr-x 2 root root 4096 2009-10-17 06:40 apparmor drwxr-xr-x 2 root root 4096 2010-04-02 15:39 apt -rw-r----- 1 syslog adm 28358 2010-04-09 09:17 auth.log -rw-r----- 1 syslog adm 9826 2010-04-05 23:19 auth.log.1 -rw-r----- 1 syslog adm 2092 2010-03-30 17:29 auth.log.2.gz -rw-r----- 1 syslog adm 625 2010-03-17 03:21 auth.log.3.gz -rw-r----- 1 syslog adm 752 2010-03-10 10:55 auth.log.4.gz -rw-r----- 1 root adm 31 2009-10-28 21:55 boot -rw-r--r-- 1 root root 39960 2009-10-28 21:56 strap.log -rw-r--r-- 1 root root 39960 2009-10-28 21:56 bootstrap.log -rw-r--r-- 1 root root 39960 2009-10-28 21:56 bootstrap.log.gz -rw-r----- 1 syslog adm 274058 2010-04-09 10:14 daemon.log -rw-r----- 1 syslog adm 53932 2010-04-05 23:23 daemon.log.1 -rw-r----- 1 syslog adm 14815 2010-03-30 17:29 daemon.log.2.gz -rw-r----- 1 syslog adm 5681 2010-03-17 03:48 daemon.log.3.gz OUTPUT Log fajlok szama: auth.log : 5 daemon.log : 4 bootstrap.log : 1 strap.log : 1

14 5. feladat Írjon olyan szkriptet, ami egy fájlt vár bemenetként. A szkript soronként olvassa a fájlt, és Ha egy olyan sort talál, amiben számok és összeadás vagy kivonásjelek követik egymást szóközzel elválasztva, akkor végezze el a műveletet, majd írja ki az eredményt. Ha két művelet vagy két szám követi egymást, akkor írjon ki hibát. Feltehetjük, hogy más hiba nem fordulhat elő ezekben a sorokban. Ha # jellel kezdődik a sor, akkor az utána levő részt írja ki. Bármely egyéb karakterrel kezdődő sort ugorja át.

15 5. feladat példa INPUT 1 + 2 - 4 + 3 #ez egy megjegyzés 1000 + 100 + 10 + 1 ezzel a soral nem csinál semmit 1 + 1 2 + 3 1 - - 2 OUTPUT 2 ez egy megjegyzés 1111 Hiba: ket szam egymas utan! Hiba: ket muvelet egymas utan!

16 6. feladat Írjon szkriptet, ami egy szöveges állományt vár bemenetként. A szkript keresse meg az email címeket, valamint a telefonszámokat. Az email cím formája: 'vmi@vmi.vmi',vmi@vmi.vmi' a telefonszám formája: +00/00-000-0000 ahol a 0 tetszőleges számjegyet jelöl. A szkript keresse meg továbbá azokat az email cím – telefonszám párokat, amelyek ugyan abban a sorban vannak, és az email címet legfeljebb 20 karakter távolságra követi a telefonszám (ez a 20 karakter nem tartalmazhat további email címet, és feltehetjük, hogy egy email cím egy sorban legfeljebb egyszer szerepel). A szkript előbb írja ki ezeket a párosokat, majd írja ki a leggyakoribb email címeket és telefonszámokat, majd írja ki, hogy hány email cím van átlagosan egy sorban, végül, hogy hány telefonszám van átlagosan egy sorban.

17 6. feladat példa INPUT Lorem ipsum dolor sit amet, sasa@gmail.com consectetur adipiscing elit. +36/30-333-0303 ultrices vel urna. Etiam massa velit, +36/80-121-0264 pretium sit amet vestibulum quis, auctor. Sed vestibulum mi ut lacus scelerisque pretium fringilla lizy17@freemail.hu feugiat. Curabitur in lacus eu libero accumsan rutrum. Morbi imperd serds@freemail.hu feugiat@gmail.com porttitor. +36/20-211-2345 Etiam quis +36/20-211-2345 massa nec quam faucibus +36/20-211-2345 lacus non tincidunt orci consectetur. +34/20-624-6321 Vivamus nacsosz@gmail.com sasa@gmail.com +36/20-211-2345 eros tortor, adipiscing sit amet eu, Duis ultricies sem nec elit interdum sasa@gmail.com ac facilisis ligula@hotmail.com OUTPUT Osszetartozo parosok: feugiat@gmail.com : +36/20-211-2345 sasa@gmail.com : +36/20-211-2345 Legtobbszor elofordulo email: sasa@gmail.com Legtobbszor elofordulo telefonszam: +36/20-211-2345 Emailek soronkenti gyakorisaga: 1 Telefonszamok soronkenti gyakorisaga: 0.875

18 7. feladat Írjon awk scriptet, amely jelenléti alkalmak, valamint a zh pontszámok alapján meghatározza, hogy melyik hallgatók bocsáthatóak vizsgára. A script egy fájlt kap, amelyben az adatok szóközökkel vannak elválasztva. Az első oszlopban a hallgató EHA kódja szerepel, amelyek 14 db ’+’ vagy ’-’ jel követ annak megfelelően, hogy a hallgató jelen volt- e az adott órán vagy nem. Ezután a 3 zh pontszáma következik, minden zh-ra maximálisan 10 pont kapható. Ha egy hallgató nem írta meg valamelyik zh-át, akkor az arra kapott pontszám hiányzik (nincs nulla írva helyette), és csak a két legjobb zh számít. Egy hallgató akkor jelentkezhet vizsgára, ha legfeljebb két hiányzása van, valamint a két legjobb zh pontszámának összege elérte a két zh-ra kapható maximális pontszám felét. Ha a hallgató vizsgázhat, a script írja ki a ’vizsgazhat’ szöveget, továbbá a hallgató által szerzett pontot zárójelben, ellenkező esetben a ’nem vizsgazhat’ szöveget.

19 7. feladat példa $ cat pontszamok.txt NAGRAAT.SZE + + + + - + + + + + + + - + 9 3 7 DEGQABT.SZE + + + + + + + + + + + + + + 4 5 4 PAZRAAT.SZE + + + - - + + + - + + + + + 7 8 6 FOEPACT.SZE + + - + + + + + + + + + + + 6 8 BALQAAT.SZE + + + + + + + + + + + + + + 10 9 10 $./vizsgaztato.awk pontszamok.txt NAGRAAT.SZE vizsgazhat(16) DEGQABT.SZE nem vizsgazhat PAZRAAT.SZE nem vizsgazhat FOEPACT.SZE vizsgazhat(14) BALQAAT.SZE vizsgazhat(20)

20 8. feladat Adott egy fájl, amely hallgatók EHA kódjait és részteljesítéseik pontszámait (összesen hallgatónként 5 db) tárolja úgy, hogy egy hallgató adatai egy sorban vannak, az EHA kóddal kezdődnek és az értékeket egy-egy tabulátor karakter választja el. A fájlban olyan sorok is előfordulhatnak, amelyek nem EHA kóddal (7 ékezet nélküli nagybetű, és a.SZE szöveg) kezdődnek, ezeket kommentként kell értelmezni, azaz a számításoknál nem kell figyelembe venni. Az EHA kóddal kezdődő sorok mindegyikében 5 számérték van. Készítsen olyan awk szkriptet, amely kiírja a képernyőre szóközzel elválasztva azon hallgatók EHA kódját, akik 35-nél több pontot értek el összesen! A szkript írja ki a képernyőre az átlagos elért összpontszámot is.

21 8. feladat példa $ cat hallgpont.txt Delelotti csoport: XXXXAAT.SZE 5 12 9 4 15 Delutani csoport: YYYYAAT.SZE 3 10 5 5 7 ZZZZAAT.SZE 1 15 10 5 12 $./feladat.awk hallgpont.txt XXXXAAT.SZE ZZZZAAT.SZE Átlag: 39.3333

22 9. feladat Adott egy 3 oszlopos fájl, melynek első két oszlopa egy-egy azonosítót tartalmaz, a harmadik oszlop pedig a két egyed közti távolságot Írjon egy awk programot, amelyik ebből az állományból egy távolságmátrixot készít! a adott két egyedhez nem tartalmaz a fájl távolságot, akkor azokra a helyekre N/A kerüljön Vegye figyelembe, hogy ha az A B távolságérték sor szerepel a fájlban, akkor a B A távolságérték sor nem fog, mert a távolság szimmetrikus. Emellett az A A 0 sorok sem szerepelnek a fájlban, ugyanis bármely egyed önmagától vett távolsága 0. A távolságmátrix elkészítése mellett számolja ki az egyedek közti átlagos, maximális és minimális távolságot!

23 9. feladat példa (input) AN51 AN50 88 AN52 AN50 167 AN52 AN51 125 AN53 AN50 81 AN53 AN51 93 AN53 AN52 170 AN54 AN50 120 AN54 AN51 119 AN54 AN52 117 AN54 AN53 66 …

24 9. feladat példa (távolságmátrix) AN50 AN51 AN52 AN53 AN54 AN55 AN56 AN57 AN58 AN59 A50 0 88 167 81 120 100 131 87 115 82 A51 88 0 125 93 119 116 137 115 111 112 A52 167 125 0 170 117 133 80 124 113 142 A53 81 93 170 0 66 47 88 53 51 41 A54 120 119 117 66 0 23 55 43 38 49 A55 100 116 133 47 23 0 60 36 32 32 A56 131 137 80 88 55 60 0 58 65 62 A57 87 115 124 53 43 36 58 0 36 31 A58 115 111 113 51 38 32 65 36 0 43 A59 82 112 142 41 49 32 62 31 43 0

25 10. feladat Írjon egy olyan awk scriptet, amely CSV formátumban tárolt táblázatot képes HTML táblázattá konvertálni. Precízebben, a CSV formátum egy olyan szöveges formátum, amely táblázatok leírását teszi lehetővé. Az állomány minden sora a táblázat egy sorának felel meg. A táblázat celláit a szöveges állomány soraiban vesszők határolják. Ezt a tárolási formát kell HTML táblázattá alakítani. A HTML egy szöveges jelölő nyelv, amelyben a táblázatokat és jelölőelemek közzé írjuk. A táblázat sorait és jelölők közzé tesszük, míg a táblázat egyes celláit és elemek közzé írjuk. A HTML állományok tetszetős megjelenítésére a webböngészők használhatóak.

26 10. feladat $ cat sample.csv; cat sample.csv | awk -f program.awk > sample.html; cat sample.html 1,2,3 4,5,6 HTML táblázat 1 2 3 4 5 6

27 11. feladat Adott egy terület, amit térfigyelő kamerákkal őriznek. A kamerák mindig az órák elején (xy:00-kor) kapcsolnak be és utána egész számú órán keresztül maradnak bekapcsolva. Egy adott nap kamera aktivitását tartalmazó log fájl a következőképpen felépülő rekordokból áll: kamera száma:bekapcsolás ideje órában megadva:kikapcsolás ideje órában megadva az órák a [0, 24] intervallumba esnek Írjon olyan awk scriptet, aminek egyetlen paramétere egy fenti típusú logfájl. A script gyűjtse ki időrendi sorrendben a fehér foltokat, azaz azokat az órákat, amikor egyik kamera sem működött és írja ki a standard outputra. Írja ki a fehér foltok összidejét is

28 11. feladat példa INPUT $cat camera.log 1:09:13 2:12:22 3:01:12 2:08:11 3:07:08 1:00:22 OUTPUT $./terfigyelo camera.log Feher foltok 22-23 23-24 Teljes ido: 2 ora

29 12. feladat Adott egy tűzfal log fájlja, ami minden sorában felhasználók böngésző előzményeit tartalmazza a következő felépítés szerint: felhasználó neve;meglátogatott weboldal neve;látogatás időpontja Írj olyan awk scriptet, ami kilistázza a standard outputra a 3 leglátogatottabb weboldalt. Az egyes oldalak mellé írd ki azt is, hogy hányszor látogatták meg őket. Ha valamelyik helyen holt verseny alakulna ki, minden azonos helyezésű oldalt írj ki.

30 12. feladat példa INPUT $cat firewall.log rossz_tanulo;c;2010-03-22:0356 rossz_tanulo;www.inf.u-szeged.hu;2010-03-22:0350 jo_tanulo;www.freeforum.oprdsz.hu;2010-03-21:1616 jo_tanulo;www.inf.u-szeged.hu;2010-02-23:1250 jo_tanulo;www.gmail.com;2010-01-12:1245 user;www.gmail.com;2010-02-19:1901 rossz_tanulo;www.gmail.com;2010-02-19:1903 kozepes_tanulo;www.gmail.com;2010-04-01:1121 kozepes_tanulo;www.inf.u-szeged.hu;2010-03-22:0750 OUTPUT $./top3 firewall.log 1. www.gmail.com 2. www.inf.u-szeged.hu 3. www.freeforum.oprdsz.hu 3. www.puska.hu

31 13. feladat Írjon szkriptet, mely paraméterként egy fájlt vár, amely az ls -lR parancs egy lehetséges kimenetét tartalmazza. A szkript kiírja azoknak a fájloknak a nevét, melyek legalább 3 könyvtár mélységben helyezkednek el az aktuális könyvtárhoz képest. A kiírás után a felhasználótól várja az egyik fájl nevét, majd kiírja annak a méretét.

32 14. feladat Írjon szkriptet mely paraméterként egy fájlt vár. A fájl tartalma országok, tájegységek, kiinduló pontok, cél pontok és távolságok ;-vel elválasztott sorozata. A szkript feladata az útvonalak darabszáma szerint csökkenő sorrendben megadni az országokat, valamint az útvonalak összhossza szerint növekvő sorrendben megadni a tájegységeket.

33 14. feladat példa INPUT Magyarország; Börzsöny; Nagybörzsöny; Márianosztra; 18 Románia; Kelemen-havasok; Maroshévíz, Pietros, 25 Magyarország; Mátra; Gyöngyös; Mátraszentistván; 23 Magyarország; Börzsöny; Diósjenő; Nagy-hideg-hegy; 12 OUTPUT Országok: Magyarország 3 Románia 1 Tájegységek: Mátra 23 Kelemen-havasok 25 Börzsöny 30


Letölteni ppt "2010/2011-2 Operációs rendszerek awk. Beadási mód Tar file File neve hxxxxxx.tar Pl. h123456.tar A tar egy könyvtárt tartalmaz A könyvtár neve hxxxxxx/"

Hasonló előadás


Google Hirdetések