LINUX.ORG.RU

Grep лога

 


0

1

Есть лог в котором нужно за час вывести сколько было строк в каждую минуту. Я бы тут сделал цикл for и каждую минуту грепал количество строк. Но тогда бы grep происходился 60 раз по файлу. А это не очень хорошо. Каким образом это можно сделать за один проход?

Ответ на: комментарий от goingUp

Спасибо за идею, помогло) А чисто ради интереса можно обойтись без uniq -c, но с wc? Или тут без цикла уже никак? Есть какая нибудь магия? )

sandrey81
() автор топика
Ответ на: комментарий от sandrey81

У grep есть ключ -c. Но он считает все, а не только уникальные строки.

Dimez ★★★★★
()

Для подсчёта строк вроде wc -l используется, зачем grep?

Shushundr ★★★★
()
Ответ на: комментарий от sandrey81

С uniq -c наверное оптимальнее всего - не будет холостых циклов по подстрокам которых не существует. Но если очень хочется, ты можешь сделать

for hour in {0..23}; do
   for minute in {0..59}; do
      echo -n "$hour:$minute "; 
      grep "$hour:$minute" /path/to/log | wc -l
   done
done
slowpony ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.