Как использовать линейный фильтр winmerge?
Есть много различий, которые меня не интересуют. Например, рассмотрим следующий случай:
ВЛЕВО: XXXXXXXX XXXXXXXXX ПРАВО: XXXXXXXX XXXXXXXXX OPTIOINAL XYZ
Я хочу игнорировать эту схему различий, но я просто могу заставить фильтр работать. Любое предложение?
3 ответа
Я нашел этот пост, потому что я также боролся с WinMerge. Документация по линейному фильтру идёт прямо в RegEx, как и я. Глупый я; ни одно из сделанных мною выражений не выполняло никакой фильтрации. Оказывается, вы просто помещаете строку в общую строку слева и справа, и она работает так, как я хочу.
Например, я сравниваю 2 файла XML для определенных различий. Некоторые строки содержат эти строки:
IntID IntRef
Им предшествует пробел, открытая строка тега и UUID, который является сущностью, вызывающей разницу, которую я хотел бы игнорировать.
Так что я просто добавил два строковых фильтра только с строками и без элементов RegEx. Обработка файла 12M была немного медленной, но я более чем воспользовался тем, что проигнорировал более 1000 обращений, чтобы увидеть 4 различия.
Я думаю, что это то, что вам нужно, с XXXXXXXX XXXXXXXXX слева и справа. Я предполагаю, что данные одинаковы на каждой стороне.
Отличный ответ, KJM! Я также предложил бы использовать разветвление WinMerge 2011 здесь. У него есть хорошая функция тестирования во всплывающем окне фильтра строк. Для вашего конкретного случая ваше регулярное выражение будет выглядеть примерно так:
^(XXXXXXXX\sXXXXXXXXX).*$
или же
^(XXXXXXXX\sXXXXXXXXX)(\sOPTIOINAL\sXYZ)*$
Проверьте здесь для примеров регулярных выражений.
Примеры я просмотрел в документации по файловым фильтрам.
https://manual.winmerge.org/en/Filters.html
Пример 2. Примеры правил фильтрации файлов
Несколько простых правил фильтрации файлов:
f: \.cpp$ ## Match *.cpp files
f: \.h$ ## Match *.h files
f: ^My ## Match My*.* files
f: Dlg\. ## Match *Dlg.* files
d: \\test$ ## Match test folders
d: ^\\Build$ ## Match Build folders
d: Temp$ ## Match *Temp folders (for example, FirstTemp)
d: Src ## Match *Src* folders
Некоторые правила с более сложными регулярными выражениями:
f: ^\.#.*$ ## .#filename.version files
f: Dlg\.c(pp)?$ ## *Dlg.c and *Dlg.cpp files
f: ^I.*\.h$ ## I*.h files
f: Srv[1-9]\.def$ ## *Srv1.def to *Srv9.def files
f: ^[h,k,m] ## h*.*, k*.*, and m*.* files