bash парсинг лога
Alexander Smirnov
alexander.v.smirnov на gmail.com
Пн Фев 28 09:29:11 UTC 2011
Тарас Перебейносов wrote:
> Доброго времени суток!
>
> Нужна помощь в написании скрипта, который будет парсить очень большой
> лог (> 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 и иже с ними, поэтому буду благодарен любым советам и
> подсказкам
$ awk -F ";" '!/\[.*\];-$/{print $2}' <filename> | sort -u
Подробная информация о списке рассылки ubuntu-ru