Leser: 1
![]() |
|< 1 2 >| | ![]() |
15 Einträge, 2 Seiten |
Use of uninitialized value in print at test.pl line 13, <LOGDATEI> line 1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket::INET;
my $file = 'test.log';
open(LOGDATEI,"<$file") or die $!;
seek(LOGDATEI,0,2); #Ans Ende springen
while(1) { #ne Schleife halt :P
while(<LOGDATEI>) { #Datei auslesen
$_ =~ m/(.+?)\ (.+?)\,(.+?)\,(.+?)\,(.+?)\,(.+?)\w(.+?)\ (.+?)\ (.+?\ .+?)\ (.+)(, from )(.+)(] )(.+)/;
print $2; #2. Wert ausgeben
}
sleep 1; #Warten ca. 1 Sekunde :)
}
exit;
1
2
22-07-05 21:02:49,ALL,Info,AccessLog, SID: 1 [to channel: Testchannel, from Tester] TestText
22-07-05 21:02:49,ALL,Info,AccessLog, SID: 1 [to channel: Testchannel, from Tester] TestText
Das Beispiel in perldoc -f seek sollte (mit geringen Anpassungen) das tun, was du willst.
Use of uninitialized value in print at test.pl line 13, <LOGDATEI> line 1.
Ich will aus einer fortlaufenden Log-Datei (es soll sozusagen "live" ausgelesen werden)
1
2
22-07-05 21:02:49,ALL,Info,AccessLog, SID: 1 [to channel: Testchannel, from Tester] TestText
22-07-05 21:02:49,ALL,Info,AccessLog, SID: 1 [to channel: Testchannel, from Tester] TestText
m/(.+?)\ (.+?)\,(.+?)\,(.+?)\,(.+?)\,(.+?)\w(.+?)\ (.+?)\ (.+?\ .+?)\ (.+)(, from )(.+)(] )(.+)/;
m/(.+?)\ (.+?)\,(.+?)\,(.+?)\,(.+?)\,(.+?)\w(.+?)\ (.+?)\ (.+?\ .+?)\ (.+)(, from )(.+)(] )(.+)/;
1
2
next unless /^.+? .+?,.+?,.+?,(.+?),\s+.+? (\d+) \[.+?: (.+?), from (.+?)\] (.*)$/;
print "$1 $2 $3 $4 $5\n";
![]() |
|< 1 2 >| | ![]() |
15 Einträge, 2 Seiten |