![]() |
Модераторы: ginnie |
![]() ![]() ![]() |
|
JavaCraft |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 8.2.2007 Репутация: нет Всего: 1 |
Интересует общий принцип работы с повторяющимися структурами данных. Например, многострочными логами.
Допустим, дан файл 10Гб с повторяющейся структурой: structname { field1 = v1 field2 = v2 field3 = v3 ... } Читаем из него очередной кусок текста 2M в буфер $buf Применяем один раз регулярку, которая выполняет разбор этого буфера Обрабатываем готовый результат в цикле: ... foo($buf); ... sub foo{ ? $rec_list = shift _ ? foreach $rec (?){ в $rec должен быть кортеж (v1,v2,v3 ...) передаем кортеж в другую функцию для асинхронной вставки в базу данных. } } 1) Как реализовать такую регулярку? 2) Если это не оптимально, каков оптимальный алгоритм разбора таких логов на Perl? Это сообщение отредактировал(а) JavaCraft - 8.11.2010, 14:34 |
|||
|
||||
DurRandir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 2 Всего: 17 |
Вы даже примера кусочка лога не дали, а уже хотите регулярку, которая бы его разбирала.
|
|||
|
||||
JavaCraft |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 8.2.2007 Репутация: нет Всего: 1 |
Почему не дал? От переименования смысл не меняется.
начало буфера - обрыв структуры " object { id = 123 name = Смартфон1 cost = 123 note = Почти новый } object { id = 124 name = Смартфон2 cost = 1234 note = Новый новый, новее не бывает } object { id = 125 name = Смартфон3 cost = 12 note = серый, китайский, с очень узким дисплеем } object { id "обрыв структуры Это сообщение отредактировал(а) JavaCraft - 9.11.2010, 14:33 |
|||
|
||||
ming |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 30.1.2009 Где: Новосибирск Репутация: 1 Всего: 3 |
непонятно зачем читать кусками по 10М, почему нельзя читать поэлементно?
Это сообщение отредактировал(а) ming - 12.11.2010, 18:21 |
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 5 Всего: 10 |
А где вложенные скобки?
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |