LINUX.ORG.RU

парсер логов по признаку

 , , , ,


0

3

Есть один софт, в который я себе делаю пометки в течении дня. Затем в конце дня мне нужно парсить пометки по моему юзеру (user_id и my_name) и тексту\строке сохраняя и учитывая при этом время (запускать скрипт буду только в конце текущего дня - значит информация нужна только за текущий день) - например если в строке было написано что-то вроде «bla bla bla LL bla bla» - то все пометки с LL мне нужно спарсить в один файл, а всё остальное - в другой


на данный момент выхлоп имеет такой вид:


Date & Time         | id          | Text
------------------------------------------------------------
2016-11-28 18:42:15 | user_id         | my_name | qqsdfsdfw
2016-11-28 18:42:23 | user_id_bla_bla | name_2 | bla bla bla LL bla bla

Желательно ещё в выходных файлах игнорировать столбец user_id, чтобы было просто

Date & Time         | id          | Text
------------------------------------------------------------
2016-11-28 18:42:15 |  my_name | qqsdfsdfw_dsfdsfdsf
2016-11-28 18:42:44 |  my_name | bsdfdsfd LL sdfsdfdsf


Как мне правильнее всего запилить такой парсер?

Ещё подскажите, как сделать, чтобы при каждом запуске скрипта он сам создавал 2 файла в директории запуска с определёнными именами -

всё_с_LL+сегодняшняя дата и остальное+сегодняшняя дата


Ищу сейчас как сделать хоть что-то и вышеперечисленного, но слепить всё в одно пока не выходит)

★★★★★

Последнее исправление: smilessss (всего исправлений: 7)

metalog может отлавливать текст по заданным правилам. Пишешь в системный лог и соскребаешь всё в отдельной директории.

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

Вытащить грепом записи с «LL» а потом грепом пройтись по исходному файлу сказав ему не включть строки из полученного в первом шаге файла не вариант?

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

хотелось бы в одно действие\ один запуск

да ещё и хотелось немного модифицировать информацию в выходных файлах, доставил это в пост

сейчас буду что-то пробовать запилить

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

буду пробовать в одно действие\один запуск

+ ещё попробую запилить игнор одного из столбцов в выходных файлах

smilessss ★★★★★
() автор топика
perl -CS -n -e 'BEGIN{($d=`date +%F`)=~s/\D+//gs;map{open($_,">:utf8","out-$d-$_")||exit(1)}@f=qw/with-LL without-LL/;};$h=$f[/LL/?0:1];print $h $_;END{map{close($_)}@f;}' < textfile
berrywizard ★★★★★
()
Ответ на: комментарий от berrywizard

Работает, спасибо)

Только дату не учитывает, рассматривает весь файл целиком, буду думать, как модифицировать

Может внешние обёртки прилеплю

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

Странно

заменил ключевое слово LL на TT и перестало парсить (в файл without-TT стали попадать пометки с ТТ )

магия)

буду читать маны по перлу)

smilessss ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.