К книге
Язык программирования PythonЛекция #6: Обработка текстов. Регулярные выражения. Unicode.. Примеры применения регулярного выражения. Обработка лога
58%
Лекция #6: Обработка текстов. Регулярные выражения. Unicode.. Примеры применения регулярного выражения. Обработка лога
134

Предыдущий пример регулярного выражения позволит выделить из лога записи с определенной меткой и подать их в сокращенном виде:

import re

log_re = re.compile(r"""(?P<date>[A–Za–z]{3}\s+\d+\s+\d\d:\d\d:\d\d) \S+

kernel:

 PAY: .+ DST=(?P<dst>\S+).* LEN=(?P<len>\d+).* DPT=(?P<dpt>\d+) """)

for line in open("message.log"):

 m = log_re.match(line)

 if m:

  print "%(date)s %(dst)s:%(dpt)s size=%(len)s" % m.groupdict()

В результате получается

Nov 27 15:57:59 192.168.1.115:1039 size=1500

Nov 27 15:57:59 192.168.1.200:8080 size=40

Nov 27 15:57:59 192.168.1.115:1039 size=515

Nov 27 15:57:59 192.168.1.200:8080 size=40

Nov 27 15:57:59 192.168.1.115:1039 size=40

Nov 27 15:57:59 192.168.1.200:8080 size=40

Nov 27 15:57:59 192.168.1.115:1039 size=40

Предыдущая главаГлава 134 из 230Следующая глава