有人在论坛 上问 将日志格式化的方法,
刚好学python,就拿这个练手了:
09:55:54: ERROR1 /tmp/error/log.3 50 times
Mon Jun 28 00:00:53 2009
09:55:54: ERROR1 /tmp/error/log.3 50 times
09:56:09: ERROR1 /tmp/error/log.14 50 times
10:56:12: ERROR1 /tmp/error/log.14 100 times
10:56:23: ERROR2 /tmp/error/log.5 50 times
11:56:26: ERROR2 /tmp/error/log.1 50 times
11:56:27: ERROR2 /tmp/error/log.5 100 times
Mon Jun 29 00:00:53 2009
15:56:29: ERROR3 /tmp/error/log.1 100 times
15:56:32: ERROR3 /tmp/error/log.1 150 times
16:56:33: ERROR4 /tmp/error/log.6 50 times
16:56:36: ERROR4 /tmp/error/log.6 100 times
16:56:40: ERROR4 /tmp/error/log.12 50 times
Mon Jun 30 00:00:53 2009
格式化成:
2009|Jun|28|10|ERROR1|1
2009|Jun|28|10|ERROR2|1
2009|Jun|29|16|ERROR4|3
2009|Jun|29|15|ERROR3|2
python 源代码:
#!/usr/bin/env python importre importsys
defformat_log(logf): re_hour = re.compile(r'^/d/d:') re_sp_split = re.compile(r'/s+')
#extract the day from time line make_day = lambdad:d[4] + '|'+ d[1]+ '|'+ d[2] make_key = lambdad,c:d + '|'+ c[0][0:2] + '|'+ c[1] cur_day = 'n/a|n/a|n/a'
log_cnt=dict() forline inlogf: m = re_hour.match(line) cols = re_sp_split.split(line)
iflen(cols) < 3: #not a valid log continue
ifm isnotNone: #this is log line ,not date key = make_key(cur_day, cols) #date | hour | err_type ifkey notinlog_cnt: log_cnt[key] = 1 else: log_cnt[key] += 1 else: iflen(cols) < 5: #not a valid log continue cur_day=make_day(cols)
sorted_key = log_cnt.keys() sorted_key.sort()
forkey insorted_key: print'%s|%d'% (key, log_cnt[key])
if__name__ == '__main__': format_log(sys.stdin)
|
python 比较易懂,这点比perl 要好多了。
上边的代码,即使不会python的人也能看懂60%
帖子链接:
http://bbs.chinaunix.net/viewthread.php?tid=1497342&extra=&page=1
分享到:
相关推荐
python程序,随便写写的,不要介意,希望有积分,谢谢大神
从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零...
我的第一个Python程序教学设计.pdf我的第一个Python程序教学设计.pdf我的第一个Python程序教学设计.pdf我的第一个Python程序教学设计.pdf我的第一个Python程序教学设计.pdf我的第一个Python程序教学设计.pdf我的第一...
人机对话——我的第一个Python程序教学设计.pdf人机对话——我的第一个Python程序教学设计.pdf人机对话——我的第一个Python程序教学设计.pdf人机对话——我的第一个Python程序教学设计.pdf人机对话——我的第一个...
搭建第一个Python程序;因为Python是一种跨平台的编程语言,所以Python程序可以在不同的操作系统上运行。然而,在不同的操作系统中安装Python开发环境的方法是有区别的。下面介绍在不同的操作系统中搭建Python开发...
使用Python自带的IDLE方式编写
Python教程-第一个python程序.pdf
第七课 我的第一个Python程序(一) 初中信息技术川教七年级上册-走进Python的世界第七课-我的第一个Python程序(一)全文共2页,当前为第1页。 课题 第七课 Python初识 课时 1 课型 新课 教 学 目 标 知识与技能 过程与...
我的第一个Python程序教学设计.docx我的第一个Python程序教学设计.docx我的第一个Python程序教学设计.docx我的第一个Python程序教学设计.docx我的第一个Python程序教学设计.docx我的第一个Python程序教学设计.docx我...
1编程前的准备工作 1.1关于编程 1.2关于python 1.3安装python运行环境 1.4第一个python程序 1.6课后习题 1.2关于Python 1.3安装Python运行环境 1.4第一个Python程序 1.6课后习题 Python程序设计基础教程(慕课版)...
第一个Python程序,hello world!
第一周-第06章节-Python3.5-第一个python程序.avi
3.1 我的第一个python程序(第1课时—了解python) 课件 (共29张PPT)+素材.zip
第2章-运行第一个Python程序.ipynb
【Python资源】实验3-第一个Python程序.docx
仅测试用。 测试完毕。 积分可以通过发布文章获取。 积分下载有vi/p用户专用限/制,需要事先开通,p/dd有帮助下载。 发布者可以下载自己上传的资源。...资源描述的曝光能力值仅通过文字数量判定,换行和符号也包括在内...
第002课:第⼀一个Python程序 在上⼀一课中,我们已经了 解了 Python语⾔言并安装了 运⾏行 Python程序所需的环境,相信⼤大家已经迫不 及 待的想开始⾃自⼰己的Python编程之旅了 。⾸首先我们来看看应该在哪⾥里 ...
一、软件下载与安装 ...Python下载地址:https://www.python.org/downloads/ ...VScode使用的是文件夹命名的项目,也就是说你想写程序的话,需要新建一个文件夹作为你的项目,这个文件夹下放你的源文件,如果需要
python程序设计基础及实践慕课版全文共1页,当前为第1页。python程序设计基础及实践慕课版全文共1页,当前为第1页。 python程序设计基础及实践慕课...Python程序设计基础及实践慕课版虽然还不够完善,但已是一个不可多