1 / 33

Második kötelező feladat

Második kötelező feladat. 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 / Pl. h123456/ A könyvtárban van elhelyezve a feladat megoldása h123456.awk

jeneva
Télécharger la présentation

Második kötelező feladat

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Második kötelező feladat 2010/2011-2 Operációs rendszerekawk

  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.shné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 megadottmó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 awkszkriptet, 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 $ catlogfile pityuka 3 1 marcsi 2 1 pityuka 2 2 OUTPUT $ ./print_log.awklogfile marcsi 2 old. - 12 Ft pityuka 7 old. - 42 Ft --- Osszesen: 9 old. - 54 Ft

  8. 2. feladat • Írjon awkszkriptet, 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): • NEV LEDOLGOZOTT(HH:MM) TOBB(HH:MM) KEVESEBB(HH:MM) NAPOK

  9. 2. feladat példa INPUT $ catmarcius.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.awkmarcius.txt Béna Béla 16:10 0:10 0:00 2 Dolgozó Elmília 16:00 0:00 0:00 2 Kovács Cecília Emese 18:00 2:00 0:00 2 Munkás Géza 6:00 0:00 2:00 1

  10. 3. feladat • Írjon awkszkriptet, 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, • 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 $ catusers.txt h123456;h123456@stud.u-szeged.hu;123*122;hallgatok;home/h123456 h1283; h654321;h654321@stud.u-szeged.hu;123/122;hallgatok;/home/h654321 OUTPUT $ ./validateUsers.awkusers.txt 1. sor: rossz a jelszoformatuma (123*122)! 1. sor: rossz a homekonyvtarformatuma (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 rootroot 4096 2009-10-17 06:40 apparmor drwxr-xr-x 2 rootroot 4096 2010-04-02 15:39 apt -rw-r----- 1 syslogadm 28358 2010-04-09 09:17 auth.log -rw-r----- 1 syslogadm 9826 2010-04-05 23:19 auth.log.1 -rw-r----- 1 syslogadm 2092 2010-03-30 17:29 auth.log.2.gz -rw-r----- 1 syslogadm 625 2010-03-17 03:21 auth.log.3.gz -rw-r----- 1 syslogadm 752 2010-03-10 10:55 auth.log.4.gz -rw-r----- 1 rootadm 31 2009-10-28 21:55 boot -rw-r--r-- 1 rootroot 39960 2009-10-28 21:56 strap.log -rw-r--r-- 1 rootroot 39960 2009-10-28 21:56 bootstrap.log -rw-r--r-- 1 rootroot 39960 2009-10-28 21:56 bootstrap.log.gz -rw-r----- 1 syslogadm 274058 2010-04-09 10:14 daemon.log -rw-r----- 1 syslogadm 53932 2010-04-05 23:23 daemon.log.1 -rw-r----- 1 syslogadm 14815 2010-03-30 17:29 daemon.log.2.gz -rw-r----- 1 syslogadm 5681 2010-03-17 03:48 daemon.log.3.gz OUTPUT Log fajlokszama: 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: ketszamegymasutan! Hiba: ketmuveletegymasutan!

  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', • 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 Loremipsumdolorsitamet, sasa@gmail.comconsecteturadipiscing elit. +36/30-333-0303 ultricesvel urna. Etiammassavelit, +36/80-121-0264 pretiumsitametvestibulumquis, auctor. Sedvestibulum mi utlacusscelerisquepretiumfringilla lizy17@freemail.hu feugiat. Curabiturinlacuseuliberoaccumsanrutrum. Morbiimperdserds@freemail.hu feugiat@gmail.comporttitor. +36/20-211-2345 Etiamquis +36/20-211-2345 massanecquam faucibus +36/20-211-2345 lacus non tinciduntorciconsectetur. +34/20-624-6321 Vivamus nacsosz@gmail.com sasa@gmail.com +36/20-211-2345 erostortor, adipiscingsitameteu, Duisultricies sem nec elit interdum sasa@gmail.comacfacilisisligula@hotmail.com OUTPUT Osszetartozoparosok: feugiat@gmail.com : +36/20-211-2345 sasa@gmail.com : +36/20-211-2345 Legtobbszorelofordulo email: sasa@gmail.com Legtobbszorelofordulotelefonszam: +36/20-211-2345 Emaileksoronkentigyakorisaga: 1 Telefonszamoksoronkentigyakorisaga: 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 ’nemvizsgazhat’ szöveget.

  19. 7. feladat példa • $ catpontszamok.txtNAGRAAT.SZE + + + + - + + + + + + + - + 9 3 7DEGQABT.SZE + + + + + + + + + + + + + + 4 5 4PAZRAAT.SZE + + + - - + + + - + + + + + 7 8 6FOEPACT.SZE + + - + + + + + + + + + + + 6 8BALQAAT.SZE + + + + + + + + + + + + + + 10 9 10 • $ ./vizsgaztato.awkpontszamok.txtNAGRAAT.SZE vizsgazhat(16)DEGQABT.SZE nem vizsgazhatPAZRAAT.SZE nem vizsgazhatFOEPACT.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 awkszkriptet, 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 • $ cathallgpont.txt • Delelotti csoport:XXXXAAT.SZE 5 12 9 4 15Delutani csoport:YYYYAAT.SZE 3 10 5 5 7ZZZZAAT.SZE 1 15 10 5 12 • $ ./feladat.awkhallgpont.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 88AN52 AN50 167AN52 AN51 125AN53 AN50 81AN53 AN51 93AN53 AN52 170AN54 AN50 120AN54 AN51 119AN54 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 023 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 <tableborder=”1”> és </table> jelölőelemek közzé írjuk. • A táblázat sorait <tr> és </tr> jelölők közzé tesszük, míg a táblázat egyes celláit <td> és </td> 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 • $ catsample.csv; catsample.csv | awk-fprogram.awk > sample.html; catsample.html • 1,2,3 • 4,5,6 • <html> • <head> • <title>HTML táblázat</title> • </head> • <body> • <tableborder="1"> • <tr> • <td>1</td> • <td>2</td> • <td>3</td> • </tr> • <tr> • <td>4</td> • <td>5</td> • <td>6</td> • </tr> • </table> • </body> • </html>

  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 $catcamera.log 1:09:13 2:12:22 3:01:12 2:08:11 3:07:08 1:00:22 OUTPUT $./terfigyelocamera.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 $catfirewall.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-lRparancs 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

More Related