首页 > 解决方案 > 将文件内容与模式/正则表达式匹配(编辑后重新发布)

问题描述

作为可重复测试方法的一部分,我希望运行一个进程,然后将其日志文件与预期结果进行比较。以下是生成的日志文件的简化示例:


2020-09-01_01:00:00.000 INFO  : Incoming record count 123

2020-09-01_01:00:00.010 INFO  : Valid record count 120

我不能使用静态文件与使用“diff”进行比较,因为每次运行时时间戳都会发生变化(日志内容的其他部分也会发生变化)。我正在考虑使用正则表达式文件并在循环中使用 grep。比较文件可能如下所示:


^....-..-.._..:..:..\.... INFO  : Incoming record count [0-9]+$

^....-..-.._..:..:..\.... INFO  : Valid record count [0-9]+$

然后,我将使用循环从日志文件和模式文件中一次取一行,并使用 grep 比较两者。这是一些伪代码:


while not eof

   read next line from log file

   read next line from pattern file

   grep pattern-line log-line

   if not matched then error and break loop

end

虽然功能这似乎效率低下且不优雅,所以我正在寻找替代方案,或者评论这实际上是一种有效的方法。

标签: regexfile-comparison

解决方案


推荐阅读