NWZIP и регулярные выражения

Обсуждение технических вопросов по продуктам Novell

NWZIP и регулярные выражения

Сообщение bgInner » 31 авг 2009, 13:09

Здравствуйте.
В документации к NWZIP сказано, что в параметре FILE_OR_DIR можно указывать регулярные выражения. Но если задаю что-то в роде LOG:\LOGS\^\.[0-9]{,3}$ (на ходу могу ошибиться, но требуется просто упаковать файлы с расширением, состоящим из цифр), то создается пустой архив, т.е. получается, что архиватор не находит нужных файлов.
Интерересует следующее: насколько полно NWZIP поддерживает регулярные выражения? Возможно автор реализовал только частичную поддержку (некоторых параметров). Может быть кто-то сталкивался с этим?
Сон разума порождает чудовищ
bgInner
 
Сообщения: 54
Зарегистрирован: 11 мар 2009, 01:05
Откуда: Брест

Одни выражения

Сообщение Павел Гарбар » 31 авг 2009, 19:57

Вот мне, например, сходу не нравится часть выражения: ^\.
Это ж не линух и обратный косая имеет другое значение.
Павел Гарбар
 
Сообщения: 710
Зарегистрирован: 05 июн 2002, 09:36
Откуда: Санкт-Петербург

Re: Одни выражения

Сообщение bgInner » 01 сен 2009, 00:09

Павел Гарбар писал(а):Вот мне, например, сходу не нравится часть выражения: ^\.
Это ж не линух и обратный косая имеет другое значение.

Павел, Линукс здесь не при чем.
В регулярных выражениях метасимвол '.' в обычном режиме означает "любой единичный символ", а '\.' означает просто точку. Для того, чтобы искать символ, совпадающий с метасимволом, его следует предварить обратной косой чертой.

А регулярные выражения - они везде регулярные: и под виндой, и под Линуксом
Кстати, сразу поправляю свой пример
FS1\LOG:\LOGS\^.+\.[0-9]{,3}$
Сон разума порождает чудовищ
bgInner
 
Сообщения: 54
Зарегистрирован: 11 мар 2009, 01:05
Откуда: Брест

Re: Одни выражения

Сообщение Константин Ошмян » 01 сен 2009, 14:05

bgInner писал(а):
Павел Гарбар писал(а):Вот мне, например, сходу не нравится часть выражения: ^\.
Это ж не линух и обратный косая имеет другое значение.

Павел, Линукс здесь не при чем.
В регулярных выражениях метасимвол '.' в обычном режиме означает "любой единичный символ", а '\.' означает просто точку. Для того, чтобы искать символ, совпадающий с метасимволом, его следует предварить обратной косой чертой.

А регулярные выражения - они везде регулярные: и под виндой, и под Линуксом
Кстати, сразу поправляю свой пример
FS1\LOG:\LOGS\^.+\.[0-9]{,3}$
В свете вышесказанного - не означает ли запись LOGS\^ просьбу искать файлы, начинающиеся с символов LOGS, после которых пятым символом идёт "шапочка" ^ (циркумфлекс)?
Аватара пользователя
Константин Ошмян
 
Сообщения: 991
Зарегистрирован: 13 авг 2002, 21:36
Откуда: Рига

Ну-ну

Сообщение Павел Гарбар » 01 сен 2009, 14:12

Ты файл ищешь или регулярно выражаешься?
Это ж уйдет в командную строку, а не по текстовому файлу поиск.
Ну и можешь просто спросить у автора программы.
Павел Гарбар
 
Сообщения: 710
Зарегистрирован: 05 июн 2002, 09:36
Откуда: Санкт-Петербург

Re: Одни выражения

Сообщение bgInner » 02 сен 2009, 00:51

Константин Ошмян писал(а):
bgInner писал(а):
Павел Гарбар писал(а):Вот мне, например, сходу не нравится часть выражения: ^\.
Это ж не линух и обратный косая имеет другое значение.

Павел, Линукс здесь не при чем.
В регулярных выражениях метасимвол '.' в обычном режиме означает "любой единичный символ", а '\.' означает просто точку. Для того, чтобы искать символ, совпадающий с метасимволом, его следует предварить обратной косой чертой.

А регулярные выражения - они везде регулярные: и под виндой, и под Линуксом
Кстати, сразу поправляю свой пример
FS1\LOG:\LOGS\^.+\.[0-9]{,3}$

В свете вышесказанного - не означает ли запись LOGS\^ просьбу искать файлы, начинающиеся с символов LOGS, после которых пятым символом идёт "шапочка" ^ (циркумфлекс)?

Согласен. Надо в фигурные скобки взять. Но по порядку.
Вроде разобрался. Итак:
Всё сие было задумано для автоматической архивации логов Novell Audit 2.0.2. Данное ПО в конкретной папке создает логи вида LYYMMDD.NNN
где
L - просто латинская буква L
YY, MM, DD - соответственно две цифры года, месяца и дня
NNN - порядковый номер файла лога после ротации логов, задается ф HEX-формате, т.е. 000,... 0A0, FFE.

для поиска всех файлов с расширениями типа NNN прописываем:
Код: Выделить всё
FILE_OR_DIR = FS1\LOG:\test\{.[0-9a-fA-F]+$}


Однако, Novell audit создает в том же каталоге также и файл текущего лога, имя которого задается в настройках Novell audit и не совпадает с выше указанным форматом. У меня оно задано одним словом, без расширения, т.е. что-то типа MAINLOG
для поиска такого файла можно прописать следующее:

Код: Выделить всё
FILE_OR_DIR = FS1\LOG:\test\{^[0-9a-zA-Z_]+.$}


а теперь объединяем эти два фильтра:

Код: Выделить всё
FILE_OR_DIR = FS1\LOG:\test\{(^[0-9a-zA-Z_]+.$)|(.[0-9a-fA-F]+$)}


и не забываем указать на всякий случай:
Код: Выделить всё
EXCLUDEFILEMASK = (*.ZIP$)


Сегодня также набросал небольшенький bash-скрипт для переименования текущего файла лога (типа MAINLOG) в файл вида LYYMMDD.NNN, т.е. сделал принудительную ротацию логов.
Обращаю внимание, что перед такой ротацией я останавливаю аудит (т.к. текущий файл лога блокируется им) и после нее опять запускаю.
После чего спокойно запускаю NWZIP.

Теперь добавлю по поводу синтаксиса. Скачал искодники NWZIP, просомтрел вскользь. Понял, почему выражения тима моего изначального не работают: у регулярных выражений есть несколько вариантов синтаксиса. Что-то типа EMACS, POSIX, UNIX и т.д. Так вот, насколько я понял, NWZIP скомпилирован с поддержкой EMACS - там урезанный синтаксис.
Сон разума порождает чудовищ
bgInner
 
Сообщения: 54
Зарегистрирован: 11 мар 2009, 01:05
Откуда: Брест

Re: Ну-ну

Сообщение bgInner » 02 сен 2009, 01:01

Павел Гарбар писал(а):Ты файл ищешь или регулярно выражаешься?
Это ж уйдет в командную строку, а не по текстовому файлу поиск.

Нет, Павел. В командную строку именно это
Код: Выделить всё
FS1\LOG:\test\{(^[0-9a-zA-Z_]+.$)|(.[0-9a-fA-F]+$)}


не уйдет. Фильтр обработывается NWZIP-овским парсером регулярных выражений, и на основании оного и делается затем поиск файлов.

Ну и можешь просто спросить у автора программы.

А где можно спросить?
Сон разума порождает чудовищ
bgInner
 
Сообщения: 54
Зарегистрирован: 11 мар 2009, 01:05
Откуда: Брест

Автор - Андрей Подойников

Сообщение Павел Гарбар » 02 сен 2009, 10:04

Павел Гарбар
 
Сообщения: 710
Зарегистрирован: 05 июн 2002, 09:36
Откуда: Санкт-Петербург


Вернуться в Novell

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2