首页 > 解决方案 > 如何计算重复的日志条目

问题描述

我想分析一个日志文件并计算重复的日志条目。

我看到了这个答案,但是由于时间戳,每个日志条目都是唯一的。

如果日志条目的格式为

Time stamp: [log message]

如何删除到 [冒号] [空格] 的行首,以便计算它们?我猜一个 sed 命令可能会做到这一点?

[编辑]

可悲的是,这对我的日志部分来说过于简化了。日志示例;

Jun 27 20:39:26 emonpi systemd[1]: Starting Clean php session files...
Jun 27 20:39:26 emonpi systemd[1]: Started Clean php session files.
Jun 27 21:09:25 emonpi systemd[1]: Starting Clean php session files...
Jun 27 21:09:26 emonpi systemd[1]: Started Clean php session files.

其中要搜索的唯一元素将是第一个:(冒号空格)。

我希望这可以计算日志文件中的每条消息。

标签: loggingcountduplicates

解决方案


假设每条日志消息都在方括号内,并且文件的名称是“file.log”,这将为您提供所需的输出:

grep -E -o '\[.+?\].*' file.log | sort | uniq -c.

对于未来的用例,我建议您熟悉正则表达式。他们非常有帮助。


推荐阅读