Pliiiiz ne zarjatok, holnap nagy szuksegunk van ra, utanna igerem hogy en zarom, KOSZI
Bash script - Szoftverfejlesztés fórum
hozzászólások
Jó hát biztos megvan rá az okod, de miért is nem volt jó a "nagy shell script topik"
jancsika.kis
(csendes tag)
adott egy allomany kov szerkezettel: nev keresztnev jegy(1<>10) csoportositsuk a szemelyeket jegy szerint es irjuk ki jol lathatoan
help!
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 ]
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
[ Szerkesztve ]
TrakToros
(csendes tag)
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.
TrakToros
(csendes tag)
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?
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 ]
Ü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
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.
sed-el meg csak az egyik body-t számolja bele
kovacsakos91
(csendes tag)
Valaki esetleg tudna ajánlani valamiféle szakirodalmat vagy példatárat a témában?
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
ez sem jó
sum=$(echo "$sum+$i" | bc)
[ Szerkesztve ]