Perl - Bestimmten Teil aus Datei auslesen
muene 20.10.2005 - 20:10 694 4
muene
Addicted
|
Hi,
Ich habe eine Datei (access.log) und lese diese mit Perl aus. Danach steht das ausgelesene in @lines.
In der Datei (access.log) steht folgendes:
127.0.0.1 - - [26/Sep/2005:19:15:10 +0200] "GET /cgi-bin/loggy.cgi?___conf___+FRANK MILLER+MUELLNER HTTP/1.1" 404 1122 "-" "Mozilla/3.0 (compatible; Indy Library)" 127.0.0.1 - - [26/Sep/2005:19:15:20 +0200] "GET /cgi-bin/loggy.cgi?___conf___+FRANK MILLER+MUELLNER HTTP/1.1" 404 1122 "-" "Mozilla/3.0 (compatible; Indy Library)" 127.0.0.1 - - [26/Sep/2005:19:15:31 +0200] "GET /cgi-bin/loggy.cgi?___conf___+KARL HUBER+HUBER HTTP/1.1" 404 1122 "-" "Mozilla/3.0 (compatible; Indy Library)" 127.0.0.1 - - [26/Sep/2005:19:15:41 +0200] "GET /cgi-bin/loggy.cgi?___conf___+HANS MAIER+COMPUTER HTTP/1.1" 404 1122 "-" "Mozilla/3.0 (compatible; Indy Library)"
Nun möchte ich aus @lines immer den Text nach dem Plus herauslesen. Also z.B. FRANK MILLER und MUELLNER
wie mache ich das am besten unter Perl? vielen dank im vorhinein mfg muene
Ps: Weis vielleicht zufällig jemand auch noch wie ich das ganze dann in einem HTML File ausgeben kann?
Bearbeitet von muene am 21.10.2005, 11:49
|
that
ModeratorHoffnungsloser Optimist
|
wie mache ich das am besten unter Perl? while (@lines)
{
m/___\+(.*)\+(.*)?HTTP/;
print "$1, $2\n";
}
Ps: Weis vielleicht zufällig jemand auch noch wie ich das ganze dann in einem HTML File ausgeben kann? Ja, einfach ein paar print-Statements mehr, die HTML-Text ausgeben.
Bearbeitet von that am 20.10.2005, 20:59
|
muene
Addicted
|
Habs gerade ausprobiert, aber es funktioniert nicht wirklich. Es wird nur unendlich lange "," ausgegebn.
mfg
|
Muli
Little Overclocker
|
hmm, probier mal: foreach (@lines) {
chomp;
#print "$_\n";
if (/___\+(.*)\+(.*) HTTP/) {
print "$1, $2\n";
}
else {
print "no match: $_\n";
}
}
das sollte funktionieren, tuts zumindest bei mir cheers PS: hab obiges auch probiert, mit /___\+(.*)\+(.*)?HTTP/
funkts auch.. vielleicht typo eingebaut?
|
muene
Addicted
|
Thx, jetzt funktionierts.
|