Thread Verständisfrage Array! Logfile!
(14 answers)
Opened by Alexander at 2012-04-14 16:01
Das ist eindeutig von einer Website geladen, und der Konverter hat das Format versaut. Alle Zeilen in dem ein Referer drin ist, der als Link erkannt werden kann, wird die Zeile zerstört. Das kann man wieder rückgängig machen:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #!/usr/bin/perl use strict; use warnings; use Date::Parse; my $file='log.txt'; open(my $fh, '<', $file) or die("Error open $file ($!)\n"); while(my $line=<$fh>) { chomp($line); $line=~s/^<pre><p>//; $line=~s!</p></pre>$!!; if($line=~s!<a href=".+?" target="_blank">(.+?)</a>!$1!g) { $line=~s/;;/;/g; } $line=~s!"!"!g; $line=~s!&!&!g; # bereinigte Zeile print "$line\n"; } close($fh); Das muss aber nicht immer funktionieren. Besser wäre es wenn du dir das richtige Logfile holen würdest, dazu sollte es einen Download Link auf der Admin-Oberfläche geben. Wenn man wider ein ordentliches Format hat kann man es auch vernünftig parsen: Code (perl): (dl
)
1 2 3 4 5 6 if($line=~/(\d+\.\d+\.\d+\.\d+) - - \[(.+?)\] "(.+?)" (\d+) (\d+|-) "(.+?)" "(.+?)"$/) { my ($ip,$date,$request,$status,$size,$referer,$useragent)=($1,$2,$3,$4,$5,$6,$7); # mach was mit den Werten. } |