如何使用 winmerge 行过滤器?

如何使用 winmerge 行过滤器?

有很多不同之处我不感兴趣。例如,考虑以下情况:

左:XXXXXXXX XXXXXXXXX 右:XXXXXXXX XXXXXXXXX 可选 XYZ

我想忽略这种差异模式,但我只能让过滤器工作。有什么建议吗?

答案1

我之所以找到这篇文章,是因为我也在使用 WinMerge 时遇到了麻烦。行过滤器文档在 RegEx 中是正确的,我也是。我真愚蠢;我制作的所有表达式都没有进行任何过滤。事实证明,您只需将字符串放在左右行的公共位置,它就会像我想要的那样工作。

例如,我正在比较两个 XML 文件以查找某些差异。有些行包含以下字符串:

整数ID 整数引用

它们前面是空格和开放标记字符串,后面是 UUID,这是导致我想要忽略的差异的实体。

因此,我仅添加了两个仅包含字符串而没有 RegEx 内容的行过滤器。处理 12M 文件有点慢,但我花了不少时间忽略 1000 多次命中才看到 4 个差异,这足以弥补这一损失。

我认为这就是您在左右两侧使用 XXXXXXXX XXXXXXXXX 所追求的。我假设两边的数据相同。

答案2

回答得好,KJM!我还建议使用 WinMerge 的 2011 分支这里。它在行过滤器弹出窗口中有一个很好的测试功能。对于您的特定情况,您的正则表达式将如下所示:

^(XXXXXXXX\sXXXXXXXXX).*$

或者

^(XXXXXXXX\sXXXXXXXXX)(\sOPTIOINAL\sXYZ)*$

查看这里用于正则表达式示例。

答案3

我查看了文件过滤器文档中的示例。

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

相关内容