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.
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.
- 2013 megtekintés
Hozzászólások
Hi!
Megmondom őszintén, nem olvastam a teljes szövegedet. Nem is igazán szeretném, nem érek rá ennyire. (Gondolom ezzel többen is így vagyunk).
Légyszíves pár szóban határozd meg, hogy pontosan hol akadtál el, és mi a konkrét kérdés. Onnantól lépésről lépésre haladhatunk.
Ne vedd rossz néven, nem kekeckedek. Segíteni szeretnék, de csak egy-egy percekre van időm ránézni a fórumra. Ezalatt nem tudom megoldani a problémádat, csak válaszolni egy-egy kérdésre.
PtR
---
"A megoldásra kell koncentrálni nem a problémára."
- A hozzászóláshoz be kell jelentkezni
rendben. Az a baj h nem nagyon tudom meg a shell programozast a tanarom nemreg adta fel a peldat 1hete es azelott meg a linuxhoz sem konyitottam sok mindent:). Mar nagyon sok mindent elolvastam de a gyakorlatban nem tudom hasznalni:(.
Hogy tudok egy adott fajlra egy scriptet lefuttatni? pl en nalam a hodnoceni.txt-re?
es utanna h tudok dolgozni argumentekkel?
if [ "$1" = "-o" ]; then
read $2 && mkdir "$2"
- A hozzászóláshoz be kell jelentkezni
A fetltétel rossz. Alapvetően a változóbehelyettesítések után értékelődik ki, vagyis a -r, -w, -d stb. gondot okozhat. Megoldás:
if [ "X$1" = "X-o" ]; then....
(behelyettesítés után ez is megy:
if [ X-f = X-o ] ....
Amúgy szerintem ezt nézd meg: (előadás link)
http://progkor.inf.elte.hu/
- A hozzászóláshoz be kell jelentkezni
Atirtam a helyes valtozatra ez igy eddig muxik. Most probalgatok, meg nem tudom mi lesz a vege:P
Koszi a linket megneztem, vki akinek van ideje es tudna nekem segiteni, kerem?
Olyasmi jo lenne?
h if hodnoceni.txt find [A-Z]; then
mkdir stats & touch [:lower:][A-Z]
azt szeretnem elerni ha talal a fajlban egy adott betut akk annak csinaljon meg egy fajlt keresse ki a hozzatartozo sorba az erteket, es szamolja meg mennyi gyerek volt A-val, es a pontok szamat is adja ossze h
ay Atlagot ki lehessen szamolni.
- A hozzászóláshoz be kell jelentkezni
if grep '[a-z]' hodnoceni.txt
then
mkdir stats
...
fi
Ehhez már ciklus stb. kellene.
Ja és még ez a jegyzet is remélhetőleg hasznodra lesz:
http://panther.inf.elte.hu/progkor/progkor.ipf
- A hozzászóláshoz be kell jelentkezni
http://qdb.hu/137
#137 + (81/64,73%) − [X]
hi
valaki tudna nekem segiteni shell programozasban?
kérdés?
Írj scriptet, ami paraméterként kap pontosan kettő
könyvtárnevet s azok tartalmát rekurzívan összehasonlítja (elegendő a
fájlnevek egyezőségét vizsgálni). Készít egy eredmény fájlt, mely
tartalmazza, hogy mennyi darab fájl azonos, melyik fájlok szerepelnek
kizárólag az egyik ill. a másik könyvtárban. Különbözőnek számít az, ha
ugyanolyan nevű fájl különböző alkönyvtárakban szerepel!
ismeros
igazabol csak egy kis lokes kene az elindulashoz
aha man bash
mintha progkorny lenne
es mintha en tartanam
asszem ez elegendő lökés :)
----
Anthill inside
honlapkészítés
- A hozzászóláshoz be kell jelentkezni