Thread Daten aus Server-Logfile erheben (Common Log Format) mit Suchmuster
(9 answers)
Opened by mojo at 2008-10-30 00:01
Wenn dein Logfile bzgl. Datum monoton steigend ist (d.h. es kommt nie ein älteres Datum nach einem neueren), dann würde ich für %date keinen Hash nehmen sondern gleich nur ein Array.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 my @date; ... while (my $zeile = <$logfile>) { # Datum herausfiltern if ($zeile =~ /.../) { $datum = $1; # so etwas wie "12/Dec/2007" if (@date == 0 || $date[-1] ne $datum) { # @date leer oder neues Datum push @date, $datum; } ... } } (ungetestet) Es wird einfach verglichen, ob das gerade eingelesene Datum ungleich dem letzten gespeicherten ist - oder ob das Array noch leer ist. Wenn ja, kommt das Datum ins Array. Alternativ zu dem oben, oder wenn das mit der Sortierung im Logfile nicht gilt, kannst du auch ![]() |