【发布时间】:2016-08-26 14:02:47
【问题描述】:
我有一个这种格式的系统日志文件。
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: Application Version: 8.44.0
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: Run on system: host
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: Running as user: SYSTEM
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: User has admin rights: yes
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: Start Time: 2016-03-07 13:44:55
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: IP Address: 10.10.10.10
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: CPU Count: 1
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: System Type: Server
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Info: MODULE: Startup MESSAGE: System Uptime: 18.10 days
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: MODULE: InitHead MESSAGE: => Reading signature and hash files ...
Mar 7 13:44:55 host.domain.example.net/10.10.10.10 Application: Notice: MODULE: Init MESSAGE: file-type-signatures.cfg initialized with 80 values.
Mar 7 13:44:56 host.domain.example.net/10.10.10.10 Application: Notice: MODULE: Init MESSAGE: signatures/filename-characteristics.dat initialized with 2778 values.
Mar 7 13:44:56 host.domain.example.net/10.10.10.10 Application: Notice: MODULE: Init MESSAGE: signatures/keywords.dat initialized with 63 values.
Some logs ...
Mar 7 17:42:08 host.domain.example.net/10.10.10.10 Application: Results: MODULE: Report MESSAGE: Results: 0 Alarms, 0 Warnings, 131 Notices, 2 Errors
Mar 7 17:42:08 host.domain.example.net/10.10.10.10 Application: End: MODULE: Report MESSAGE: Begin Time: 2016-03-07 13:44:55
Mar 7 17:42:08 host.domain.example.net/10.10.10.10 Application: End: MODULE: Report MESSAGE: End Time: 2016-03-07 17:42:07
Mar 7 17:42:08 host.domain.example.net/10.10.10.10 Application: End: MODULE: Report MESSAGE: Scan took 3 hours 57 mins 11 secs
如何提取“应用程序版本”、“在系统上运行”、“用户具有管理员权限”、“开始时间”、“IP 地址”、“CPU 计数”、“系统类型”、“系统正常运行时间”、 “结束时间”,以及使用 Python 的“警报”、“警告”、“通知”、“错误”的计数?
实际上我是 Python 新手,所以我真的不知道该怎么做。但我设法制作了一个名为 finder() 的函数
def finder(fname,str):
with open(fname, "r") as hand:
for line in hand:
line = line.rstrip()
if re.search(str, line):
return line
为了获得带有 IP 地址的行,我将使用
调用它 finder("file path","MESSAGE: IP Address")
这将打印整行,我需要帮助才能仅获取该 ipaddress 部分, 以及其他行中的其他信息。
【问题讨论】:
-
如果(正如您的标题所暗示的)您正在使用正则表达式,您尝试了哪种模式?
-
如果有请分享您的代码和错误
-
实际上我是 Python 新手,所以我真的不知道该怎么做。但我设法创建了一个名为 finder def finder(fname,str): with open(fname, "r") as hand: for line in hand: line = line.rstrip() if re.search(str, line) :返回行并获取带有 IP 地址的行,我将使用 finder(file path,"MESSAGE: IP Address") 调用它这将打印所有行,我需要帮助才能仅获取该 ipaddress 部分,以及其他信息其他行也是如此。