regex - 将文件内容与模式/正则表达式匹配(编辑后重新发布)
问题描述
作为可重复测试方法的一部分,我希望运行一个进程,然后将其日志文件与预期结果进行比较。以下是生成的日志文件的简化示例:
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
虽然功能这似乎效率低下且不优雅,所以我正在寻找替代方案,或者评论这实际上是一种有效的方法。
解决方案
推荐阅读
- php - PHP - 标头不会继承当前 url 的先前部分
- docker - 是否可以缓存多阶段 docker 构建?
- c++ - 如何反序列化一个数组?
- java - 用forkjoinpool java 8替换线程池
- symfony - 如何在 Symfony 框架中禁用或修复弃用警告?
- python - 如何在python中将特殊格式导入为字典?
- azure-active-directory - 授予服务主体访问其他租户中的应用程序的权限
- python - 将字典存储在文件中并部分加载的最佳方法?
- c - 尝试在 C 中读取 txt 文件时出现分段错误(核心转储)
- xamarin.forms - 带有 XF 的 ReactiveUI:如何为自定义控件创建命令绑定器?