我的程序读入一个大的日志文件。然后它在文件中搜索 IP 和 TIME(括号中的内容)。
5.63.145.71 - - [30/Jun/2013:08:04:46 -0500] “HEAD / HTTP/1.1” 200 - “-” “checks.panopta.com” 5.63.145.71 - - [30/Jun/2013 :08:04:49 -0500]“头/HTTP/1.1”200-“-”“checks.panopta.com”5.63.145.71--[30/Jun/2013:08:04:51 -0500]“头/HTTP/1.1" 200 - "-" "checks.panopta.com"
我想阅读整个文件,并将条目总结如下:
Num 3 IP 5.63.145.1 TIME [30/Jun/2013:08:04:46 -0500] 条目数、IP、TIME 和 DATE
到目前为止我所拥有的:
import re
x = open("logssss.txt")
dic={}
for line in x:
m = re.search(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b",line).group().split()
c = re.search(r"\[(.+)\]",line).group().split()
for i in range(len(m)):
try:
dic[m[i]] += 1
except:
dic[m[i]] = 1
k = dic.keys()
for i in range(len(k)):
print dic[k[i]], k[i]
上面的代码现在可以正确显示了!谢谢。
6 199.21.99.83
1 5.63.145.71
编辑:那么现在将 c 添加到我的输出中怎么样,时间戳会明显不同,但是只是在同一行上获取其中一个值,这可能吗?