Форум сайта python.su
Master_Sergius
Что за чит?
C:\>systeminfo Имя узла: 2008 Название ОС: Microsoft Windows Server 2008 R2 Standard Версия ОС: 6.1.7600 Н/Д сборка 7600 Изготовитель ОС: Microsoft Corporation
Офлайн
Но ведь на винде нету утилит типа cat и grep, это установленный какой-то пакет а-ля набор линуксовых утилит?
Хм… кажется, мне удалось найти то, что нужно, это есмь либа mmap, надо познакомиться поближе…
Отредактировано Master_Sergius (Ноя. 18, 2013 13:41:00)
Офлайн
Master_Sergius
Но ведь на винде нету утилит типа cat и grep, это установленный какой-то пакет а-ля набор линуксовых утилит?
Отредактировано Budulianin (Ноя. 18, 2013 13:47:44)
Офлайн
Master_Sergius
Использовать grep хотелось бы
Master_Sergius
Читать построчно - тоже не идёт, ибо регулярки всякие бывают - может быть такой шаблон, что совпадёт кусок, который состоит из 50 строк, а то и более…
Master_Sergiusgrep не может в нескольких строках сразу искать
Иногда, эти куски могут занимать несколько строк.
Master_Sergiusне, ставится msys, а туда grep
Что за чит? С линукса монтировать виндовый раздел? Это плохой вариант…
Master_Sergiusони пишут в разные логи, каждый из которых по 100MiB ?
Есть много разных програм, которые постоянно пишут в логи что-то…
Офлайн
py.user.nextЯ проверял на таких регулярках типа grep -E “some begin mark(\s|\S)*some end mark” - и находило
grep не может в нескольких строках сразу искать
py.user.nextНет, бывают разные случаи. Есть логи по пару килобайт, есть логи по гигу…
они пишут в разные логи, каждый из которых по 100MiB ?
Отредактировано Master_Sergius (Ноя. 18, 2013 16:12:50)
Офлайн
Master_Sergiusоно ищет в одной строке
регулярках типа- и находилоgrep -E "some begin mark(\s|\S)*some end mark"
Master_Sergiusне, скорее всего, ты не понимаешь, как работает grep
возможно, я не так выразился
[guest@localhost ~]$ echo -e "a b c\nb c d"
a b c
b c d
[guest@localhost ~]$ echo -e "a b c\nb c d" | grep -E 'a.+d'
[guest@localhost ~]$
Офлайн
Да, действительно. Я нашел ошибку у себя… Фокус был в том, что там превращали файлы в одну строку, а Я повелся )
Что ж… Получается, что то, что мне нужно и есть mmap, пока что тестил на одном продукте - всё работает.
Но если знаете ещё решения, буду рад увидеть их здесь…
Всё-таки нужны подсказки… И это решение не есмь универсальное. Попробовали тестить на разных продуктах, оказалось на freebsd вылазиет еррор:
match = pattern.search(data)
RuntimeError: maximum work per expression/data limit exceeded
Отредактировано Master_Sergius (Ноя. 19, 2013 17:15:51)
Офлайн
приведи конкретный пример небольшого лога и того, что из него нужно выбрать
можешь три разных примера привести
а то непонятно, что именно ты делаешь и складывается впечатление, что ты сам не знаешь точно
а от правильно сформулированной цели зависит вся последующая реализация
Офлайн
Да всё понятно - грубо говоря - есть файлы, и надо убедиться, что там есть совпадения по регулярках.
Но, на всяк случай, вот пожалуйста, пусть будет пример
2013-11-06 08:24:09 1.1.0.14-015 290
2013-11-06 08:24:07 1.1.0.14-014 290
2013-11-06 08:24:06 1.1.0.14-013 290
2013-11-06 08:24:04 1.1.0.14-012 290
2013-11-06 08:24:03 1.1.0.14-011 290
2013-11-06 08:24:01 1.1.0.14-010 290
2013-11-06 08:24:00 1.1.0.14-009 290
2013-11-06 08:23:58 1.1.0.14-008 290
2013-11-06 08:23:57 1.1.0.14-007 290
2013-11-06 08:23:55 1.1.0.14-006 290
INFO: Run script with options:
XXX
INFO: OK
DEBUG: XXX
INFO: Run script with options:
XXX
INFO: ERROR
Офлайн
Master_Sergius
А здесь, как видно, оно разбито по строкам
Отредактировано Budulianin (Ноя. 20, 2013 14:04:02)
Офлайн