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

Тарас Перебейносов taras.perebeynosov на gmail.com
Пт Фев 25 10:14:40 UTC 2011


ну вот) за каждый день, а не за каждую секунду) а если убирать повторения
юзеров за день, нужно убрать время сначала. Но не суть, согласен, надо
выражаться точнее.

в общем, давно хотел узнать как из строки можно по шаблону вытаскивать кусок
в переменную)

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
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <https://lists.ubuntu.com/archives/ubuntu-ru/attachments/20110225/bcb7ffd8/attachment.html>


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