Re: Perl / Log-Analyse
Hallo,
On Sun, Feb 10, 2002 at 03:36:01PM +0100, Kevin Röwe wrote:
>
> 192.168.100.243 KBretschneider - [03/Feb/2002:00:40:32 +0100] "GET
> http://www.caloweb.com/cgi-local/getimage.cgi/de_cwg_284995378?
> HTTP/1.0" 200 359 TCP_MISS:DIRECT
>
> Herausfiltern möchte ich den Timestamp, in diesem Fall 00:40.
>
> Hat da irgendjemand eine gute Idee.
> Mit Perl kann man so klasse konstrukte konstruieren wie if($line =~
> /^\d+\.\d+\.\d+\.\d+\sKBretschneider -\s+\[\d+\/\s+\/\d+\:(\d+\:\d)$/)
> Leider ist es ohne Bauanleitung recht mühsam.
man perlre
oder Buchladen -> "Mastering Regular Expressions" (oder so ähnlich,
O'Reilly ist der Verlag)
Das ganze heißt also "Reguläre Ausdrücke". In Perl-Büchern/Einführungen
findet sich in der Regel auch etwas zum Thema.
($timestamp) = (/\[.*?:(\d\d:\d\d)/);
# nach der ersten "[" kommen beliebig viele Zeichen (ohne Gier!), dann ein
# ":", danach zwei Ziffern, noch ein ":", und dann Dein gesuchter
# Timestamp, der wird in () zwischengelagert und steht damit zur
# Verfügung ...
Für den vorgesehenen Zweck dürfte es wahrscheinlich genügen. (Wirst ja
keine eckschen Klammern in den Nutzernamen oder IP-Adressen haben..)
Best regards from Dresden
Viele Gruesse aus Dresden
Heiko Schlittermann
--
SCHLITTERMANN --------------------- internet & unix support -
<a href="http://debian.schlittermann.de/"> Debian 2.x CD </a>
Heiko Schlittermann HS12-RIPE finger:heiko@schlittermann.de -
pgp: A1 7D F6 7B 69 73 48 35 E1 DE 21 A7 A8 9A 77 92 -------
gpg: CC19 0FE2 073B AEA1 5C11 37DD 347D 73DC FF56 BA6D -----
Reply to: