我有一个日志文件,其中的文本如下所示。
Jul 1 03:27:12 syslog: [m_java][ 1/Jul/2013 03:27:12.818][j:[SessionThread <]^Iat com/avc/abc/magr/service/find.something(abc/1235/locator/abc;Ljava/lang/String;)Labc/abc/abcd/abcd;(bytecode:7)
文件中有两种时间格式。我需要根据[]中包含的日期时间格式对日志文件进行排序。
这是我要用的正则表达式。但它什么也不回。
t_pat = re.compile(r".*\[\d+/\D+/.*\]")
我想检查文件中的每一行,能够应用此模式并根据日期和时间对行进行排序。
有人能帮我吗?谢谢!
您不匹配初始空间;您还希望将日期分组以便于提取,并将
\D
和.*
模式限制为非贪婪模式:演示:
您可以进一步缩小模式的范围;您只需要为一个月匹配3个字母,例如:
Read all the lines of the file并使用
sort
函数并传入一个parses out the date函数,并将其用作the key for sorting:其中有一个空格需要添加到正则表达式中
接下来使用以下函数分析时间
http://docs.python.org/2/library/time.html#time.strptime
最后将其用作dict的键,将行用作值,并根据键对这些条目进行排序。
相关问题 更多 >
编程相关推荐