>> Obviously, split(/ /, $line) doesn't produce the array I really want.
I don't understand the word 'obviously': what results are you getting?
Have you tried the safer
split /\s+/, $line; # split on any sequence of whitespace
- Roger -
----- Original Message -----
From: "Matt Richter" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, November 13, 2001 2:41 PM
Subject: Split a line with Multiple data types
> I'm trying to split a line from a PIX Firewall log file and put it into
> an array.
> The log entries look like:
>
> Nov 13 07:28:55 10.0.0.3 %PIX-4-400025: IDS:2154 ICMP ping of death from
> 123.123.123.123 to 124.124.124.124 on interface outside
>
> Here is the code i've tried:
> .............................................................
> while ($line = <LOG>) {
> if ($line =~ /PIX-4-4000/) { # Match PIX
> Message ID Type
> @fields = split(/ /, $line); # Populate
> @fields with data
> $month{$fields[0]}++; #
> $day{$fields[0]." ".$fields[1]}++; # Cat Month and
> Day
> $fields[2] =~ /(\d{2}):/; # Parse
> Hour from Time
> $ltime{$fields[0]." ".$fields[1]." ".$1}++; # Cat Date and Time
> $host{$fields[3]}++;
> $pixcode{$fields[4]}++;
> ............etc
> .......................................................................
> Obviously, split(/ /, $line) doesn't produce the array I really want.
>
> Here is the format of the log entries to parse.
>
> Month Day Time Host PIXcode IDSCode Protocol Description SourceHost To
> DestinationHost On Interface InterfaceName
>
> Here are the string details:
> Month : Always Three Letters
> Day : May be One or Two Digits. If one Digit, it is preceded by and
> extra space. i.e. " 9" or "10"
> Time: Always the same format
> Host : Sometimes IP number, Sometimes Hostname
> PIXCode : Always %PIX-4-4000xx:
> IDSCode : Always IDS:xxxx
> Protocol : If exists, followed by space, Sometimes not there at all
> Description : Various string lengths (2 To 6 words)
> SourceHost : Always an IP Number
> To : Always exists
> DestinationHost : Always an IP Number
> On Interface : Always exists
> InterfaceName : Always One Word
>
>
> Thanks!
>
> Matt Richter
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]