You are on page 1of 3

Általános ismertető:

A moria szerveren a hallgató saját home könyvtárában hozzon létre egy az EHA/NEPTUN
kódjával megegyező könyvtárat (eha kód kisbetűkkel, .kefo nélkül, illetve neptun azonosító
kisbetűvel), azon belül hozzon létre egy F21221 könyvtárat, azon belül pedig egy ZH1P_ZY
könyvtárat.
(pl. a következő paranccsal: mkdir –p ehakód/F21221/ZH1P_ZY ahol az ehakód az Ön EHA
kódja kisbetűkkel .kefo nélkül vagy NEPTUN kódja.)
Pl. NEPTUN kóddal rendelkező hallgató esetén: mkdir –p zcgwae/F21221/ZH1P_ZY
A teljes elérési út a következő lesz akkor: /home/ZCGWAE/zcgwae/F21221/ZH1P_ZY
Pl. EHA kóddal rendelkező hallgató esetén: mkdir –p kofsaag/F21221/ZH1P_ZY
A teljes elérési út a következő lesz akkor:
/home/KOFSAAG.KEFO/kofsaag/F21221/ZH1P_ZY

Kérem, figyeljen a felhasználónév, a feladat pontos megadására és a kis és nagybetűk közti


különbségre!

Rosszul megadott mappanév érvényteleníti a ZH-t!

Ez a könyvtár lesz az Ön munkakönyvtára. A feladattal kapcsolatos minden munkát ide


végezzen (pl. fő szkript, eredmény, ideiglenes fájlok, stb.)
A fő szkript neve run.sh legyen!

Leadáshoz hajtsa végre a következő parancsokat, és utasításokat (ahol az ehakód helyére írja
saját eha/neptun kódját kisbetűvel - eha kódnál kefo nélkül):

cd (nyomja le az enter billentyűt!)


/home/public/bin/submit.sh ehakód (nyomja le az enter billentyűt!)

Ezután SCP alapú programmal (pl. winscp) töltsék le a generált zip fájlt (saját könyvtárukban
van ehakód_dátum.zip néven), majd a fájlfeltöltéses feladatban töltsék fel!

Ha nincs feltöltve az unipoll rendszerébe a generált zip fájl, a ZH érvénytelen!


Ha nem a submit.sh által készített fájlt tölti fel, a ZH érvénytelen!
Bármely más platformon (email, teams, facebook, egyéb oldalak) elküldött dolgozat
NEM értékelhető!

Figyelmesen olvassa el a feladatot!

Írjon bash scriptet, amely a pozícionális paraméterben megadott fájlon dolgozik. A bash
szkript a kimenetét a log.txt fájlba irányítja.

Fájl szűrésével állapítsa meg, melyik csomagnak van a legtöbb függősége. Mellette határozza
meg, hány olyan csomag van még, amely ugyanolyan architektúrában van, mint a legtöbb
függőséget tartalmazó csomag.
A bejegyzések a fájlban így néznek ki:
Package: speech-dispatcher-espeak-ng
Architecture: amd64
Version: 0.8.7-1
APT-ID: 6313
Status: installed
Depends: libc6 (>= 2.4), libdotconf0 (>= 1.0.13), libespeak-ng1, libglib2.0-0 (>= 2.31.8),
libltdl7 (>= 2.4.6), libsndfile1 (>= 1.0.20), speech-dispatcher (= 0.8.7-1)
Breaks: speech-dispatcher (<< 0.8.5-5)

A csomag neve a Package: után van, a függőségeket a Depends: kezdetű sorban ,-karakterrel
elválasztva találjuk. Az architektúra leírása az Architecture: után található.
A sorok összetartásához javasolt az unió karakter használata a grep meghatározásakor. ( Unió:
| - AltGr+W karakter, amit védeni kell a grep alatt [ egy karakter védése: \ karakter
(AltGr+Q)] )

Eredmény: Külön sorokban a legtöbb függőséget tartalmazó csomag neve, illetve a


darabszám.

Az eredményt írja ki a log.txt fájlba!

A feladatot reguláris kifejezések segítségével oldja meg, javasolt a grep manual


tanulmányozása.
A feladat során minden tanult bash segédprogramot vagy szűrőt használhat. Ezen túl szükség
esetén használjon változókat, csővezetéket, csatorna átirányítást, parancslistát, vezérlési
szerkezeteket.

A program paraméterei:
Pozícionális paraméter: a feldolgozandó fájl neve

A programot a /home/public/eipp.log fájllal tesztelje!

Pl: ./run.sh /home/public/eipp.log


A log.txt tartalma:
gnome-shell
1257
cat $1 | grep -n "\(Package:\)\|\(Depends:\)" > qq #kiszedni csak a kĂ-
vánt sorokat
db=`cat qq | grep "Depends: " | wc -l` #megszamoljuk hany darab Depends:
sor van
>ww #ures fajl letrehozasa
for i in `seq $db`
do
sor=`cat qq | grep "Depends:" | head -$i | tail -1` #kivalasztjuk az
aktualisat
dep=`echo $sor | cut -f3 -d":" | tr "," "\n" | wc -l` # megszamoljuk a
fuggosegeket
echo ${dep}:`echo $sor | cut -f1 -d":"` >> ww #kiirjuk fajlba
done
dependsor=`cat ww | sort -nr | head -1 | cut -f2 -d":"` #a legtobbet
kivalasztjuk
qqsor=`cat qq | grep -n "$dependsor" | cut -f1 -d":"` #megkeressuk a
kivant sort
qqsor=`expr $qqsor \- 1`
package=`cat qq | head -$qqsor | tail -1 | cut -f3 -d":"` #package-re
rakeresunk
echo $package > log.txt

pack_sor=`cat qq | grep "Package: \`echo $package\`$" | cut -f1 -d":"` #a


package megkeresese
pack_sor=`expr $pack_sor \+ 1` #eredeti fajlban az architektura egy
sorral lentebb van
architekt=`cat $1 | head -$pack_sor | tail -1` #megkeressuk az
architekturat
arch_db=`cat $1 | grep -c "\`echo $architekt\`"` #megszamoljuk, hany
ilyen csomag van meg
echo $arch_db >> log.txt #kiirjuk a log.txtbe

You might also like