Создать шаблон (и / или регулярное выражение) автоматически из ввода - PullRequest
1 голос
/ 23 октября 2009

У меня есть большая куча логов (более или менее без документации), и мне нужно их проанализировать. Сам синтаксический анализ не будет большой проблемой, но сначала мне нужно узнать, сколько разных типов строк внутри файлов.

Помимо того факта, что у меня есть действительно разные строки, такие как короткие ошибки, вплоть до больших строк, которые отличаются только в некоторых полях, таких как полное имя пользователя, от сертификата, который они используют, и некоторых чисел, таких как перевод и размер.

Было бы неплохо получить сгенерированный шаблон с различиями / общими вещами для группы одинаковых линий.

Существуют ли какие-либо инструменты, которые позволят сделать трюк и проанализировать большой набор входных данных и вывести общий материал во всех строках?

Ответы [ 2 ]

0 голосов
/ 23 октября 2009

Я не могу придумать, как написать это в регулярном выражении.

Однако как насчет копирования и вставки журналов в Excel, а затем их сортировки? Я думаю, что было бы легче определить, сколько разных типов сообщений существует таким образом.

Или вы можете импортировать в Access или SQL или что-то еще, а затем вы можете использовать SELECT DISTINCT, чтобы урезать результаты еще дальше.

0 голосов
/ 23 октября 2009

Я не знаю ни одного такого инструмента. Возможно, я бы просто открыл файл, отсортировал его и удалил повторяющиеся типы сообщений.

Например, если у вас было:

Error while writing char 45
Error while writing char 8
Error while writing char 903

Я бы уменьшил его до

Error while writing char #

Я не уверен, что запрашиваемый вами инструмент выполним. Рассмотрим эти сообщения об ошибках:

I/O Error: couldn't open file abc.txt
I/O Error: failed while writing to xyz.txt
Database Error: couldn't open database MyDB

Какой алгоритм может сказать вам, что 2-я ошибка - это вариация 1-й, а 3-я ошибка - это новый тип?

Я думаю, вам придется делать это вручную, но сортировка облегчит задачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...