我有一个包含以下日志行的输入日志。我想%H:%M:%S:%f
在python中根据模式按升序对行进行排序。
输入日志样本:
Patch:[18Q][05/20 11:24:14:123] [] some text
Patch:[18Q][05/20 13:20:29:173] [] some text
Patch:[18Q][05/20 11:24:14:545] [] some text
[05/20 12:31:22:355] some text
[05/20 12:25:40:959] some text
[05/20 12:47:09:771] some text
Patch:[18Q][05/20 13:24:52:094] [] some text
[05/20 12:25:11:314] some text
预期输出日志:
Patch:[18Q][05/20 11:24:14:123] [] some text
Patch:[18Q][05/20 11:24:14:545] [] some text
[05/20 12:25:11:314] some text
[05/20 12:25:40:959] some text
[05/20 12:31:22:355] some text
[05/20 12:47:09:771] some text
Patch:[18Q][05/20 13:20:29:173] [] some text
Patch:[18Q][05/20 13:24:52:094] [] some text
import re
s = """Patch:[18Q][05/20 11:24:14:123] [] some text
Patch:[18Q][05/20 13:20:29:173] [] some text
Patch:[18Q][05/20 11:24:14:545] [] some text
[05/20 12:31:22:355] some text
[05/20 12:25:40:959] some text
[05/20 12:47:09:771] some text
Patch:[18Q][05/20 13:24:52:094] [] some text
[05/20 12:25:11:314] some text """
def func(val):
s_result = re.search(r"(?<=\[)(\d{1,2}/\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}:\d{1,3})(?=\])", val)
return s_result.group() if s_result else "999"
print(sorted(s.split("\n"), key=func))
# output
"""
[
'Patch:[18Q][05/20 11:24:14:123] [] some text',
'Patch:[18Q][05/20 11:24:14:545] [] some text',
'[05/20 12:25:11:314] some text ',
'[05/20 12:25:40:959] some text ',
'[05/20 12:31:22:355] some text ',
'[05/20 12:47:09:771] some text',
'Patch:[18Q][05/20 13:20:29:173] [] some text',
'Patch:[18Q][05/20 13:24:52:094] [] some text'
]
"""
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句