LogFile auslesen
am 08.05.2007 13:42:29 von mr-sansibar
HI !
Und zwar möchte ich ein LogFile auslesen !
Die Datensätze sind durch Whitespace getrennt, es gibt auch leere
Datensätz, die ebenfalls durch ein Whitspace getrennt sind. Ein
Beispiel dazu:
Datum Uhrzeit Session ID1 ID2 Orderchannel Source
08.05.2007 09:09:57,712 8ftg6gttf54cfgh65-fe-345-fvtr-345 1256789
9874321 48 de.xxx.yyy.zzz
08.06.2007 09.10.55,712 de.xxx.yyy.zzz
09.07.20070:10:58,785 48 de.xxx.yyy.zzz
Habe dabei an die Funktion Split gedacht oder gibt es was besseres !!!
Vielen Dank für Eure Hilfe !!!
Re: LogFile auslesen
am 08.05.2007 13:53:19 von Frank Seitz
mr-sansibar wrote:
> Und zwar möchte ich ein LogFile auslesen !
> Die Datensätze sind durch Whitespace getrennt, es gibt auch leere
> Datensätz, die ebenfalls durch ein Whitspace getrennt sind. Ein
> Beispiel dazu:
>
> Datum Uhrzeit Session ID1 ID2 Orderchannel Source
> 08.05.2007 09:09:57,712 8ftg6gttf54cfgh65-fe-345-fvtr-345 1256789
> 9874321 48 de.xxx.yyy.zzz
> 08.06.2007 09.10.55,712 de.xxx.yyy.zzz
> 09.07.20070:10:58,785 48 de.xxx.yyy.zzz
>
> Habe dabei an die Funktion Split gedacht oder gibt es was besseres !!!
Verstehe die Frage nicht. Was kann einfacher sein als
ein einzelner split-Aufruf?
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: LogFile auslesen
am 08.05.2007 13:58:07 von Thomas Wittek
Die Daten sehen falsch aus.
mr-sansibar schrieb:
> Datum Uhrzeit Session ID1 ID2 Orderchannel Source
> 08.05.2007 09:09:57,712 8ftg6gttf54cfgh65-fe-345-fvtr-345 1256789
> 9874321 48 de.xxx.yyy.zzz
> 08.06.2007 09.10.55,712 de.xxx.yyy.zzz
eher: 08.06.2007 09:10:55,712 de.xxx.yyy.zzz
oder: 08.06.2007 09:10:55,712 42 de.xxx.yyy.zzz
> 09.07.20070:10:58,785 48 de.xxx.yyy.zzz
eher: 09.07.2007 00:10:58,785 48 de.xxx.yyy.zzz
Ist es gewünscht, dass einige Werte fehlen dürfen?
Wenn ja, werden trotzdem die Leerzeichen als Trenner eingefügt?
Das Format musst du schon genau wissen!
> Habe dabei an die Funktion Split gedacht oder gibt es was besseres !!!
Split sollte man nur nehmen, wenn man sich 100%ig sicher ist, dass jede
Zeile genau das Muster hat, das man in der split-Funktion nutzt.
Wenn da z.B. eine Leerzeile bei ist, bekommst du ein undefiniertes Ergebnis.
Daher würde ich eher so vorgehen:
while (<>) {
if (/^(\S*) (\S*) (\S*) (\S*) (\S*) (\S*) (\S*)$/) {
my ($datum, $uhrzeit, $session, $id1, $id2, $channel, $source) =
($1, $2, $3, $4, $5, $6, $7);
}
}
--
Thomas Wittek
http://gedankenkonstrukt.de/
Jabber: streawkceur@jabber.i-pobox.net
Re: LogFile auslesen
am 08.05.2007 14:17:47 von mr-sansibar
On 8 Mai, 13:58, Thomas Wittek wrote:
> Die Daten sehen falsch aus.
>
> mr-sansibar schrieb:
>
> > Datum Uhrzeit Session ID1 ID2 Orderchannel Source
> > 08.05.2007 09:09:57,712 8ftg6gttf54cfgh65-fe-345-fvtr-345 1256789
> > 9874321 48 de.xxx.yyy.zzz
> > 08.06.2007 09.10.55,712 de.xxx.yyy.zzz
>
> eher: 08.06.2007 09:10:55,712 de.xxx.yyy.zzz
> oder: 08.06.2007 09:10:55,712 42 de.xxx.yyy.zzz
>
> > 09.07.20070:10:58,785 48 de.xxx.yyy.zzz
>
> eher: 09.07.2007 00:10:58,785 48 de.xxx.yyy.zzz
>
> Ist es gewünscht, dass einige Werte fehlen dürfen?
> Wenn ja, werden trotzdem die Leerzeichen als Trenner eingefügt?
> Das Format musst du schon genau wissen!
>
> > Habe dabei an die Funktion Split gedacht oder gibt es was besseres !!!
>
> Split sollte man nur nehmen, wenn man sich 100%ig sicher ist, dass jede
> Zeile genau das Muster hat, das man in der split-Funktion nutzt.
> Wenn da z.B. eine Leerzeile bei ist, bekommst du ein undefiniertes Ergebn=
is.
>
> Daher würde ich eher so vorgehen:
>
> while (<>) {
> if (/^(\S*) (\S*) (\S*) (\S*) (\S*) (\S*) (\S*)$/) {
> my ($datum, $uhrzeit, $session, $id1, $id2, $channel, $source) =3D
> ($1, $2, $3, $4, $5, $6, $7);
> }
> }
>
> --
> Thomas Wittekhttp://gedankenkonstrukt.de/
> Jabber: streawkc...@jabber.i-pobox.net
HI !
Wie man unten sehen kann, fehlen auchmal datensätze, wie z.B.:
Session, ID1,ID2, Orderchannel. Zwischen Uhrzeit und Source sind 4
Whitespace !
Datum Uhrzeit Session ID1 ID2 Orderchannel Source
Context: 20.04.2007 15:43:00,114 de.xxx.yyy.zzz
Context: 20.04.2007 15:55:54,697 c5fee39b-2e0b-4ba7-b88f-3841893ce31a
201833 56 de.xxx.yyy.zzz