Notepad++如何用正则忽略方括号内时间戳查找删除重复日志行
Notepad++ 忽略行首时间戳的日志去重方案
操作前务必备份原日志文件,避免误操作导致内容丢失。
操作步骤
- 打开目标日志文件,按快捷键
Ctrl+H调出替换窗口 - 在窗口底部「查找模式」栏选择正则表达式,勾选「.匹配换行符」选项,其余选项保持默认取消状态
- 在「查找内容」输入框填入以下正则:
^(\[[^\]]+\])(.*)$(?=[\s\S]*^\[[^\]]+\]\2$)
- 「替换为」输入框留空,点击「全部替换」即可自动删除所有正文重复的日志行
规则说明
- 正则会自动跳过每行开头
[时间戳]格式的内容,仅把时间戳后的日志正文作为重复判定依据,不会受时间差影响 - 上述规则默认保留每类重复日志的最后一条出现记录
- 若需要保留每类重复日志的第一条出现记录,替换前先点击菜单栏「编辑 > 行操作 > 反转行顺序」,完成替换后再次执行反转行顺序操作即可
兼容调整
如果你的日志行首时间戳前存在不定量空格,把正则修改为以下内容即可兼容:
^\s*(\[[^\]]+\])(.*)$(?=[\s\S]*^\s*\[[^\]]+\]\2$)
针对给出的两类示例日志,正则会准确识别为两种不同的正文内容,分别去重,不会出现误合并、误删有效日志的问题。该方案完全基于Notepad++原生正则能力实现,兼容所有64位最新版本,不需要安装任何已失效的第三方插件。
内容的提问来源于stack exchange,提问作者m.i
相关产品推荐
相关产品推荐

