B) Skript stats.sh
A szkript az ertekeles statisztikajat generalja. Az automatikus bemeneti fajl a hodnoceni.txt. AZ ertekeles skalazva van 5 pontonkent: 0-4pontig, 5-9pontig, 10-14pontig, es igy tovabb. A vegere kinyomtatja az atlagot, ezt tort formaban, h ne lepjen fel problema a tizedes szamokkal. A szkript minden varianst kulon dolgoz fel, minden varians statisztikajat kulon fajlba menti el.A fajl neve ugyanaz mint a varians neve es mindig kis betuvel (a-z ig, a variansok is ezek lehetnek). Ezek a fajlok automatikusan a stats nevu mappaba generalodnak.
Kimenet:
0-4 : 1
5-9 : 0
10-14 : 2
Atlag : 26/3
A helykoz szama a bemeneti es kimeneti fajloknal lenyegtelen, a varians betunagysaga lenyegtelen (a es A ugyanazt jelenti). A skala az adott ertekig nyomtatodik ki, tehat ha a legnagyobb ertek 32 akk az utolso kinyomtatott intervallum 30-34ig lesz.
A szkript hasznalata es a lehetseges modositasok(argumentek):
stats.sh [-g] [-o dir] [-h hod] [-v var]
* -o dir ... a fajlokat ne a stats mappaba mentse hanem mashova (dir -te adod meg)
* -h hod ... a bemeneti fajl mas mint a hodnoceni.txt (hod -te adod meg)
* -v var ... a feltuntetett variansokra csinalja csak meg (var -te adod meg), regularis kifejezes is lehet,
(ABD) vagy (A-C). Pl:
./stats.sh -v A-C ha pl a C varianshoz nem tartozik ertek akk a fajl sem jon letre, csak a,b.
./stats.sh -v abd
A kimenet formatumanak megvaltoztatasa, a szam helyett h hany diak erte el az adott pontszamot, a megfelelo jel fog kinyomtatodni.
kimenetre pl:
0-4 : =
5-9 :
10-14 : ==
Atlag : 26/3
A szkript kidolgozasanak feltetelei:
A szkriptet a shellben hozzuk letre a kovetkezo programok segitsegevel: cat, grep, sed, awk, sort, uniq, cut. Lehet hasznalni a BASH built-in parancsait is(mkdir, tr, let, read, tail, head, cd, wc). Ne hasznaljon ideiglenes fajlokat! Az argumentek sorrendje valtozhat!
Egy ilyen fajlra kellene hasznalni pl:
xadame17;C;3;bla bla bla
xadamc00;A;20; fdjhfjdshjs
xadame15;A;26; fdk fhdjs dfhja f
xadame17;A;27; fjdkja hfdj hfdj jf
xadame16;A;30; fhdjhfjd hfdj jdfh jas
xadamc00;B;16; hfdjshfdjs jds ajfhdaj jfd
xaloma00;A;19; fhdjshf fdjah fjdjas fhdjas
xadame17;B;2; fhdjhfj fjdha j jfdah fjdas hfj a
Nem kerem a program megoldasat! a Shell programozassal nemreg ismerkedtem meg. Szeretnek kerni vmi tampontot, egy kis segitseget, h h is erhetem el ezeket a dolgokat h megoldasra keruljenek. a segitseget elore is koszonom.
Példa:
Van alapesetben a hodnoceni.txt fajl. Ezt a fajlt kell feldolgoznunk, alapesetben kikell nyerni a pontok szamat, es h melyik varianshoz tartozik. Minden variansnak kell csinalni egy kulonfajlt ami alapesetben a stats mappaba mentse el. A fajlok nevei kisbetuvel. Es az adott fajlba 5 pontonkent szet kell irni a pontokat es Atlagot kell belole csinalni tort formaban.
Bemutató példa
ha pl igy akarom futtatni a scriptet, h ./stats.sh
akk lenne a stats mappaban 3fajl (a,b,c).
es a "c" fajl igy nezne ki : 0-4 : 1
Atlag : 3/1
mivel a megadott fajlban csak egy C varians van.
a "b" fajl igy nezne ki: 0-4 : 1
5-9 :
10-14 :
15-19 : 1
Atlag : 18/2
Aztan ha argumenttel hivom meg akk a fent emlitett dolgok alapjan lehet allitani: pl ./stats.sh ABCD akk csak ezeket a variansokat keresi es a hozzatartozo pontokat. Ha vmelyik varianshoz nem talal erteket akk a fajl nem jon letre, jelen esetben a D varianshoz nem fog tartozni a "d" fajl.
Argumenttel meglehet adni meg a bemeneti fajlt, es a kimeneti alkonyvtart is, es azt h a szamok helyett a szetirasban = jel legyen.