2013. május 22., szerda

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Bash script

Hozzászólások

(#1) Briganti


Briganti
(tag)

Pliiiiz ne zarjatok, holnap nagy szuksegunk van ra, utanna igerem hogy en zarom, KOSZI :R

If debugging is a process of removing bug, then programming is a process of putting them in ...

(#2) Jester01 válasza Briganti (#1) üzenetére


Jester01
(PH! addikt)

Jó hát biztos megvan rá az okod, de miért is nem volt jó a "nagy shell script topik" :F

Jester

(#3) jancsika.kis


jancsika.kis
(újonc)

adott egy allomany kov szerkezettel: nev keresztnev jegy(1<>10) csoportositsuk a szemelyeket jegy szerint es irjuk ki jol lathatoan
help!

(#4) jancsika.kis


jancsika.kis
(újonc)

ez eken de linuxban ... #!/bin/bash

(#5) Darth_Revan


Darth_Revan
(PH! addikt)
LOGOUT blog

Hi!
Tudna nekem mondani valaki egy egyszerű parancsot amivel meg tudom határozni (awk nélkül) egy xy könyvtáron belül levő fájlok átlag méretét egészre kerekítve? Thx :)

[ Szerkesztve ]

(#6) Jester01 válasza Darth_Revan (#5) üzenetére


Jester01
(PH! addikt)

Például:

sum=0
count=0
for size in $(find "$1" -maxdepth 1 -type f -printf "%s ")
do
sum=$((sum + size))
count=$((count + 1))
done
echo "$sum bytes in $count files, averaging $((sum / count)) bytes per file"

MOD: persze nullával osztást illene ellenőrizni :B

[ Szerkesztve ]

Jester

(#7) TrakToros


TrakToros
(lelkes újonc)

hello!
Nekem is volna 1 gondom.

Megoldottam, hogy kimenetre kimenjen 4 db számjegy és azt kellene összeadni és átlagolni. Segítene valaki? Köszönöm.

A traktorosok,kombájnosok jó emberek:)

(#8) Jester01 válasza TrakToros (#7) üzenetére


Jester01
(PH! addikt)

Hát ez ugyanaz a probléma mint fentebb :K

Jester

(#9) TrakToros válasza Jester01 (#8) üzenetére


TrakToros
(lelkes újonc)

csak az nekem nem igazán akar működni :(

Leírom inkább az egész feladatot:

Írjon bash scriptet, amely az első pozícionális paraméterben megadott könyvtárban meghatározza
az olvasható fájlok átlag méretét bájtban (egészre kerekitve). A paraméterül kapott könyvtár létezését ellenőrizze,
és térjen vissza hibás (2) kóddal ha nem létezik. Ha nincs megadva paraméter, írjon ki rövid ismertetőt a használatról
és térjen vissza hibás (1) kóddal. Az eredmény egész számot (átlag) írja ki egy log.txt nevű fájlba.
A feladat megoldása során a "test", "expr", "ls", "cat", "echo", "cut", és "find" segédprogramokat használja.

A feladat eleje hiányzik már csak, mert addig sikerült megcsinálnom, hogy kilistázza egy mappán belül levő fájlok méretet, jelenleg csak azok jelennek meg a kimeneten, már csak összegezni és átlagolni kellene őket. Bár nem tudom többi rész is jó-e, mert "test,"expr" és "cat" parancsokat még nem használtam, ebbe a maradék részben kellene használni ezt a 3at? :U

Ezt csináltam eddig:

if [ -z "$1" ]
then
echo "Nem adtál meg könyvtár nevet! Kérlek add meg!"
exit 2
fi

a=`find / -name $1 2>/dev/null`

if [ -d "$a" ];
then

for fn in $a

do
for i in "$fn"/*.*
do
b=`ls -ltr $i`
echo $b|cut -d " " -f 5


done
done

else
echo "Nem található ez a mappa!"
fi

[ Szerkesztve ]

A traktorosok,kombájnosok jó emberek:)

(#10) TrakToros válasza TrakToros (#9) üzenetére


TrakToros
(lelkes újonc)

már mind1, megcsináltam :B

A traktorosok,kombájnosok jó emberek:)

(#11) Darth_Revan válasza Jester01 (#6) üzenetére


Darth_Revan
(PH! addikt)
LOGOUT blog

Köszi, hasznos volt :R

(#12) Darth_Revan


Darth_Revan
(PH! addikt)
LOGOUT blog

Üdv

Azt hogy lehetne megcsinálni, hogy kilistázok több db html fájlt és azokban megszámolni, hogy hány db sor van a <body> és </body> között? Próbáltam volna grep-el de csak egy sort számnolt, a <body>-t :(

(#13) Jester01 válasza Darth_Revan (#12) üzenetére


Jester01
(PH! addikt)

sed -n '/<body>/,/<\/body>/ p' | wc -l
Ez beleszámolja a body sorokat is, tehát kettővel több lesz. Már ha volt body egyáltalán.

Vagy awk-val:
awk '/<body>/,/<\/body>/ { count++ } END { if (count > 2) print count - 2; else print 0 } '

vagy shellben közvetlenül:

count=0
body=0
while read line
do
test "x$line" != "x${line/<body>/}" && body=1 && continue
test "x$line" != "x${line/<\/body>/}" && body=0 && continue
[[ $body == 1 ]] && count=$((count + 1))
done
echo $count

Egyik sem szereti ha egy sorban van a <body> és a </body> :) És ha nincs </body> akkor is "között"-nek minősül.

Jester

(#14) Darth_Revan válasza Jester01 (#13) üzenetére


Darth_Revan
(PH! addikt)
LOGOUT blog

awk-val csak 0-t ír ki :(

(#15) Darth_Revan válasza Darth_Revan (#14) üzenetére


Darth_Revan
(PH! addikt)
LOGOUT blog

sed-el meg csak az egyik body-t számolja bele :B

(#16) Jester01 válasza Darth_Revan (#14) üzenetére


Jester01
(PH! addikt)

Tudsz adni egy példát?

Jester

(#17) kovacsakos91


kovacsakos91
(újonc)

Valaki esetleg tudna ajánlani valamiféle szakirodalmat vagy példatárat a témában?

(#18) Jim-Y


Jim-Y
(PH! kedvence)
LOGOUT blog

Sziasztok

van egy változóm benne floatok, ezeket szeretném összeadni, már legalább 20-féleképp próbáltam de eddig semmi :/

"a" a változó
"sum"-ba kéne összeadogatni az "a"-ban lévő floatokat (pl 56.45,65.32 stb..)

for i in $a
do
`sum+=$i | bc`
done

megköszönném ha valaki tudna segíteni :R

LMDE

(#19) Jim-Y válasza Jim-Y (#18) üzenetére


Jim-Y
(PH! kedvence)
LOGOUT blog

ez sem jó :(

sum=$(echo "$sum+$i" | bc)

[ Szerkesztve ]

LMDE

(#20) Jim-Y válasza Jim-Y (#19) üzenetére


Jim-Y
(PH! kedvence)
LOGOUT blog

Ha esetleg érdekel valakit, végül felba***, szóval felidegesítettem magam, és hagytam a fenébe a bashscriptet, és perlben oldottam meg, lám ott tök triviálisan ennyi volt:

$sum=0.0;
foreach(@ssr){
$sum+=$_;
}

-.-

LMDE

(#21) Jester01 válasza Jim-Y (#18) üzenetére


Jester01
(PH! addikt)

Ha vesszővel vannak elválasztva, akkor pl.:

a="56.45,65.32,12.34"
sum=$(echo ${a//,/+} | bc)

Jester

(#22) devbence válasza Jim-Y (#20) üzenetére


devbence
(kvázi-tag)
LOGOUT blog

lol :C

"az erzelem szamomra fontos dolog.. pl: erzem ha ehes vagyok"

(#23) Ronny3


Ronny3
(fanatikus tag)

Valaki tud esetleg segíteni ebben:

Egy VB Sript-et kellene írni ,, , ami az Fn+F3 gombokra vonatkozna ACER TM8571 Notebookra,és azt az utasítást adja a gépnek induláskor, mintha benyomtam volna az Fn+F3-as gombot... Ami egyébként a Bluetooth-ot kapcsolja be!

A VB Scrip-tel az autómatikus Bluetooth bekapcsolását szeretném megoldani, hogy ne keljen mindig bekapcsolgatni ujraindítás után!

Köszönöm ha tud valaki érdemben segíteni!

(#24) sonar válasza Ronny3 (#23) üzenetére


sonar
(őstag)
LOGOUT blog

Bash <>Batch
szerintem benézted a topicot

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember….Your life – Your choices!

Hirdetés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Bash script
Copyright © 2000-2013 PROHARDVER Informatikai Kft.