我有几个日志文件,内容如下:
2022-03-13 21:16:46.367972: I This is a test1
有没有办法告诉 WinMerge 排除日期/时间比较而不使用 RegEx 删除时间戳?
这些日志来自生成日志的程序。我必须找出两个文件中消息之间的差异,忽略时间戳。
答案1
WinMerge 有各种可配置和启用的“PreDiffer”插件 - 在这种情况下,最简单的方法可能是让它忽略两个文件中都存在日期/时间戳的列范围内的值,假设它们被放在两个文件的公共列中。
插件 -> 插件设置 -> ignoreColumns.dll ->不包括在比较中的带有时间戳的列号范围
然后,确保通过选择启用此插件:
插件 -> 预处理 -> ignoreColumns.dll
答案2
显然,使用自定义插件是可以实现的。WinMerge 在 C:\Program Files\WinMerge\MergePlugins 中有几个自定义插件。其中一个插件名为“PrediffLineFilter.sct”,用于在比较之前排除行的某些部分。但出于某种原因,它对我来说不起作用。
于是我转而使用 Beyond Compare。它有一项功能叫做“不重要的文本”。
以下是“操作方法”:
- 在文本比较模式下输入“规则”
- 添加新的“不重要的文本”
- 添加要排除的文本。
在我的例子中,为了排除日志时间戳,我使用了“\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d.\d\d\d\d\d\d” - 如果您使用 RegEx,请选中正确的复选框
- 如果你只想看到差异,请按“差异”按钮
- 如果要从差异中排除“不重要的文本”,请按“次要”按钮