В Ruby Сравните 2 строки в файле журнала, которые ОБА содержат одно и то же «СЛОВО», но выводят ТОЛЬКО строку, написанную ПОСЛЕДНИ - PullRequest
0 голосов
/ 03 мая 2010

вот примерные строки

Apr  9 11:53:26 skip [2244]: [2244] ab-cd-ef:cc [INFO] A recoverable error has occurred
some other log lines ..
....
Apr  9 12:53:26 skip [2244]: [2244] ab-cd-ef:cc [INFO] A recoverable error has occurred

теперь самой последней строкой должна быть строка с самой последней строкой даты, и это та, которую нужно напечатать, плюс СЛЕДУЮЩИЙ раз, когда синтаксический анализатор запускает файл журнала, как-то нужно сравнить предыдущую строку LATEST с существующим последним, и это МОЖЕТ иметь место, что НИЧЕГО не изменилось, и СТАРШАЯ строка является ЕЩЕ самой последней, ИЛИ есть НОВАЯ строка, но ТОЛЬКО НОВАЯ строка журнала должна быть напечатана, а НЕ если НЕТ НОВОГО журнала запись.

1 Ответ

0 голосов
/ 03 мая 2010

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

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

...