Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: помогите с простеньким скриптом на Shell  (Прочитано 1154 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн eccentric

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Есть такая вот задача:
Пробежать по файлу (лог) и посчитать, сколько записей, удовлетворяющих шаблону, было сделано в зависимости от времени.
Вид лога:
2008-05-26 23:59:59,794 8756984 INFO   Method call: 'Method1'
2008-05-26 23:60:05,794 8756984 INFO   Method call: 'Method2'
...


я сделал вот такое решение, но оно работает медленно (понятно почему)

for h in `seq 10 23`# задаем часы (с 10.00 до 23.59)
do
    for m in `seq 0 $STEP 59`# минуты с заданным шагом
    do
        if [ $m -lt 10 ]
        then
            echo "$h:0$m" `cat $LOGS | grep -c "$h:0$m:.*$PATTERN.*"`
        else
            echo "$h:$m" `cat $LOGS | grep -c "$h:$m:.*$PATTERN.*"`
        fi
    done
done

Вывод должен быть примерно такой:
21:35 24550
21:40 25912
21:55 34234
...
 
« Последнее редактирование: 27 Мая 2008, 10:45:59 от eccentric »

Оффлайн jmur

  • Активист
  • *
  • Сообщений: 350
    • Просмотр профиля
я в шелле не силён, но чисто с программной точки зрения надо пробегать файл один раз и в зависимости от времени в строке увеличивать переменную, соответствующую этому промежутку времени

 

Страница сгенерирована за 0.016 секунд. Запросов: 21.