我当前正在搜索包含IP地址的日志文件。
日志示例:
10.1.177.198 Tue Jun 19 09:25:16 CDT 2018
10.1.160.198 Tue Jun 19 09:25:38 CDT 2018
10.1.177.198 Tue Jun 19 09:25:36 CDT 2018
10.1.160.198 Tue Jun 19 09:25:40 CDT 2018
10.1.177.198 Tue Jun 19 09:26:38 CDT 2018
10.1.177.198 Tue Jun 19 09:27:16 CDT 2018
10.1.177.198 Tue Jun 19 09:28:38 CDT 2018
我现在可以从日志的最后一行获取IP地址。我还可以搜索具有相同IP地址的所有行号。
如果日志中的最后一个IP地址在日志中列出了3次或更多次,我如何才能获得该IP地址倒数第三次出现的行号?
例如,我想要获取此行的行号:
10.1.177.198 Tue Jun 19 09:26:38 CDT 2018
或者更好的是,只打印整行。
下面是我的代码示例:
import re
def run():
try:
logfile = open('read.log', 'r')
for line in logfile:
x1 = line.split()[0]
for num, line in enumerate(logfile, 0):
if x1 in line:
print("Found " + x1 + " at line:", num)
print ('Last Line: ' + x1)
logfile.close
except OSError as e:
print (e)
run()
我列出了出现特定IP地址的所有行号。
print("Found " + x1 + " at line:", num)
我想打印行,其中"num“是行号列表中倒数第三个数字。
我的总体目标是从日志文件的最后一行获取IP地址。然后检查它之前是否被列出了3次以上。如果有,我希望找到地址的倒数第三个列表,并获得行号(或者只打印该行列出的地址和日期)。
https://stackoverflow.com/questions/50934908
复制相似问题