LINUX.ORG.RU

Проблема с математической обработкой строк.


0

0

Добрый день, сделал следующий скрипт

#!/bin/sh
#

DIR=/var/analize

for f in $DIR/b*.log;do
if [ -f "$f" ]; then
chkpnt=`less $f | grep "|Checkpoints" | awk '{print$6}' | awk '{if ($1!=0) {a+=$1;}}; END {print a;}'`
echo $chkpnt
sum=$sum+$chkpnt
count=$count+1
fi
done
avg=$sum/$count
echo "---SUM---"
echo $sum
echo "---AVG---"
echo "$sum/$count=$avg"


Который анализирует логи в директории.
Суммируя значения |Checkpoints и потом выводя среднее значение

но почему то выдается примерно следующее
# ./analize.sh
133
134
146
21
17
187
132
---SUM---
+133+134+146+21+17+187+132
---AVG---
+133+134+146+21+17+187+132/+1+1+1+1+1+1+1=+133+134+146+21+17+187+132/+1+1+1+1+1 +1+1


подскажите как сделать математическое сложение строк?


Re: Проблема с математической обработкой строк.

man bc

alphex_kaanoken ★★★ ()

Re: Проблема с математической обработкой строк.

> analize.sh

как вы яхту назовете ...

grob ★★★★★ ()

Re: Проблема с математической обработкой строк.

-avg=$sum/$count
+avg=$(($sum/$count))
 echo "---SUM---"
 echo $sum
 echo "---AVG---"
-echo "$sum/$count=$avg"
+echo "$(($sum/$count))=$avg"

Как-то так вообщем. Сам не проверял. bc тут будет излишней зависимостью.

php-coder ★★★★★ ()

Re: Проблема с математической обработкой строк.

man expr

swizard ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.