Re: bash парсинг лога

Сергей Болонкин sb на altbox.ru
Пт Фев 25 10:25:51 UTC 2011


Тут есть неплохое описание с примерами:
http://citforum.ru/operating_systems/articles/sed_awk.shtml
http://www.opennet.ru/docs/RUS/bash_scripting_guide/

25 февраля 2011 г. 13:14 пользователь Тарас Перебейносов
<taras.perebeynosov на gmail.com> написал:
> ну вот) за каждый день, а не за каждую секунду) а если убирать повторения
> юзеров за день, нужно убрать время сначала. Но не суть, согласен, надо
> выражаться точнее.
>
> в общем, давно хотел узнать как из строки можно по шаблону вытаскивать кусок
> в переменную)
>
> 25 февраля 2011 г. 13:11 пользователь Сергей Болонкин <sb на altbox.ru>
> написал:
>>
>> Всё правильно. Как и было поставлено условие:
>> "...Т.е. нужно получить список юзеров за каждый день, без повторений и
>> пустых
>> юзеров (-)...."
>>
>> 25 февраля 2011 г. 13:07 пользователь Тарас Перебейносов
>> <taras.perebeynosov на gmail.com> написал:
>> > Это всего лишь избавляет от пользователей "-". Дубликаты - один и тот же
>> > пользователь в течении дня, а не в ту же секунду. Т.е. нужно сначала
>> > отрезать от даты время, оставив только "25/Feb/2011", потом для каждой
>> > даты
>> > убрать дубликаты юзеров.
>> >
>> > Думаю без цикла не обойтись. Для начало хотелось бы реализовать это:
>> >
>> > file="dirname/filename"
>> >
>> > grep -v ';-$' | while read string
>> > do
>> >   date=`echo $string | <как то получаем только 25/Feb/2011>`
>> >   ....
>> > done
>> >
>> > Как мне из строки "[25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN"
>> > получить
>> > только дату в формате "25/Feb/2011"?
>> >
>> > 25 февраля 2011 г. 12:27 пользователь Сергей Болонкин <sb на altbox.ru>
>> > написал:
>> >>
>> >> Прошу прощения, не убрал дубликаты :)
>> >>
>> >> cat [dirname/filename]|grep -v ';-$'|sort -u
>> >>
>> >> 25 февраля 2011 г. 12:24 пользователь Сергей Болонкин <sb на altbox.ru>
>> >> написал:
>> >> > Как быстрый вариант:
>> >> > cat [dirname/filename]|grep -v ';-$'
>> >> >
>> >> > 25 февраля 2011 г. 11:47 пользователь Тарас Перебейносов
>> >> > <taras.perebeynosov на gmail.com> написал:
>> >> >> Доброго времени суток!
>> >> >>
>> >> >> Нужна помощь в написании скрипта, который будет парсить очень
>> >> >> большой
>> >> >> лог (>
>> >> >> 300 Mb)
>> >> >>
>> >> >> Лог выглядит так:
>> >> >>
>> >> >> [25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN
>> >> >> [25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN
>> >> >> [25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN
>> >> >> [25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN
>> >> >> [25/Feb/2011:11:42:58 +0300];-
>> >> >> [25/Feb/2011:11:43:08 +0300];-
>> >> >> [25/Feb/2011:11:43:08 +0300];-
>> >> >> [25/Feb/2011:11:43:09 +0300];-
>> >> >> [25/Feb/2011:11:43:09 +0300];Trofimov
>> >> >> [25/Feb/2011:11:43:19 +0300];-
>> >> >>
>> >> >> На выходе нужно получить файл, в котором будет содержаться:
>> >> >> 25/Feb/2011;X_HudsonAccesToSVN
>> >> >> 25/Feb/2011;Trofimov
>> >> >>
>> >> >> Т.е. нужно получить список юзеров за каждый день, без повторений и
>> >> >> пустых
>> >> >> юзеров (-).
>> >> >> Лог реально большой, и это тоже надо учесть.
>> >> >>
>> >> >> Я пока только начинаю писать скрипты на bash, пока не особо умею
>> >> >> пользоваться awk и иже с ними, поэтому буду благодарен любым советам
>> >> >> и
>> >> >> подсказкам
>> >> >>
>> >> >
>> >> >
>> >> > --
>> >> > ____________________________
>> >> > С уважением, Сергей Болонкин
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> ____________________________
>> >> С уважением, Сергей Болонкин
>> >> --
>> >> ubuntu-ru mailing list
>> >> ubuntu-ru на lists.ubuntu.com
>> >> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
>> >
>> >
>> > --
>> > ubuntu-ru mailing list
>> > ubuntu-ru на lists.ubuntu.com
>> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
>> >
>> >
>>
>>
>>
>> --
>> ____________________________
>> С уважением, Сергей Болонкин
>> --
>> ubuntu-ru mailing list
>> ubuntu-ru на lists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
>
>
> --
> ubuntu-ru mailing list
> ubuntu-ru на lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
>
>



-- 
____________________________
С уважением, Сергей Болонкин


Подробная информация о списке рассылки ubuntu-ru