【发布时间】:2021-01-23 02:17:39
【问题描述】:
我有一个日志检查器,它使用正则表达式从日志文件中的行中查找 IP。 我想找到这些行,并计算通过 IP 匹配的相同行的总出现次数
目标是根据事件的 IP 从事件中生成统计信息。 示例:
WARNING - 192.168.1.1 TIMING OUT
WARNING - 192.168.1.5 TIMING OUT
WARNING - 192.168.1.1 TIMING OUT
WARNING - 192.168.1.5 TIMING OUT
WARNING - 192.168.1.1 TIMING OUT
WARNING - 10.1.1.1 TIMING OUT
WARNING - 10.72.3.1 TIMING OUT
192.168.1.1 - 3 EVENTS
192.168.1.5 - 2 EVENTS
10.1.1.1 - 1 EVENT
10.72.3.1 - 1 EVENT
如此等等。我是 python 新手,所以我仍在学习最适合此目的的方法。到目前为止,我打开了日志文件,使用正则表达式模式执行 for 循环以查找每一行中的 IP,但从那里我有点迷失了。干杯。
【问题讨论】:
-
只需使用字典,键为 IP 地址,每次遇到每个 IP 地址时递增值。
-
@Nick 欢呼。您能否澄清一下 - 使用字典我会明确定义我需要记录的每个 IP 地址吗?通过日志,我可能会查看 50-100 多个不同的地址。
-
不,您可以使用变量作为键,并使用
defaultdict来避免担心未定义的索引,例如rextester.com/CPP47999
标签: python regex sorting logging counting