[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Регеспом к tcl помогите



Yuri Kozlov -> debian-russian@lists.debian.org  @ Wed, 23 Feb 2005 01:10:23 +0300:

 >>> YK> Привет всем.
 >>> YK> Хочу обработать логи от dhcpd вида
 >>> YK> Feb 18 08:14:56 dns dhcpd: DHCPDISCOVER from 00:02:b3:18:b6:7b via
 >>> 172.20.61.1
 >>> YK> Feb 18 08:14:46 dns dhcpd: DHCPDISCOVER from 00:02:b3:18:b6:00 via
 >>> YK> 172.20.61.1: not authoritative for subnet
 >>> YK> Написал что-то типа
 >>> YK> set iMAC {00:02}
 >>> YK> append exp {(.{15})} {.*?} {dhcpd:\ DHCPDISCOVER\ from\ }
 >>> "($iMAC\.\*\?)" {\
 >>> YK> via\ } {(.*?)$}
 >>> YK> regexp -expanded $exp $i -> discDate MAC discGateway
 >>
 >>> YK> Но в некоторых строках(а в некоторых нет!) в discGateway кроме ip
 >>> YK> пишется дополнительная информация.
 >>> YK> Что добавить в регесп, чтобы эта информация тоже в переменную
 >>> YK> засовывалась или чтобы писалось пустое значение в противном случае?
 >>> {([0-9.]+)}.  Если сам писал вышеупомянутое, то куда вставить -
 >>>найдешь...
 >> Спасибо, теперь получилось
 >> append exp {(.{15})} {.*?} {dhcpd:\ DHCPDISCOVER\ from\ } "($iMAC\.\*\?)" {\
 >> via\ } {([0-9.]+)} {(.*)$}
 >> И последняя вещь, которую хочется сделать этим регеспом
 >> чтобы в получившееся значение ": not authoritative for subnet"
 >> не попадало двоеточие и пробел.
 >>

 YK> А сам доковырял:
 YK> append exp {(.{15})} {.*?} {dhcpd:\ DHCPDISCOVER\ from\ } "($iMAC\.\*\?)" {\
 YK> via\ } {([0-9.]+)} {($|:\ )(.*)$}

 YK> Может можно покороче ? :)

Можно. У тебя все бэкслеши лишние, и из разных строчек ты его собираешь
совершенно зря.

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru



Reply to: