[Sussex] Parsing a Logfile with Perl....

John Crowhurst info at johnscomputersupport.co.uk
Wed Mar 12 11:36:51 UTC 2008


On Wed, March 12, 2008 10:32, Richie Jarvis wrote:
> Hi All,
>
> I have written a little perl script to read a logfile, and parse certain
> values for matching lines into a csv file.  It works great - until I
> tried it on one of our systems and discovered that a colleague had put a
> '-' character into one of the usernames I am parsing.  After lots of
> cursing, I am stuck on this one, and wonder if anyone can see how to
> adjust my regex to span the situation where usernames with and without
> funny characters can be encompassed?
>
> Here is an example line from a well-formatted line:
>
> 2007-05-31 15:21:13 Sent SMS [SMSC:mbloxpsmsca] [SVC:fusion] [ACT:]
> [BINF:] [from:62569] [to:16474075000] [flags:-1:1:-1:-1:-1]
> [msg:100:01062F1F2DB69181923945413141363634383631323734414246333536363635343442423438464444353732303745433300030B6A00C54601C60001550187360603773700018707060354454D502D7B31363437343037353030307D0001873806034375]
> [udh:12:0B05040B8423F00003210401]

Would it be easier to use split to carve up the strings based on the space
delimiter and process them individually?

something like:

foreach $line (@logfilearray) {
  ($1,$2,$3) = split(/ /,$line); # $1, $2 to number of fields
  # process the strings here
}

-- 
John Crowhurst
John's Computer Support




More information about the Sussex mailing list