[ale] Help Processing a Log File
Jonathan Glass
jonathan.glass at ibb.gatech.edu
Wed May 12 21:08:10 EDT 2004
To answer your question, no, the '-nomard' is the only possible entry.
I just broke it apart to make more sense.
Perfect! Now I just have to write a wrapper script to parse the whole
log file (40,000+ print entries) and send it to this script.
I wonder if I can change the while (<ARGV>) statement and pull in the
file there? Should I pull in 6 lines at a time? Maybe some kind of
while statement?
Thanks for the start! I'll see how far I can get. Also, thanks for
letting me think out loud.
I just found the regex section of my perl book, just before you sent
this.
Jonathan
On Wed, 2004-05-12 at 20:56, Geoffrey wrote:
> Jonathan Glass wrote:
> > I'm trying to parse a printer log file. Here is a snippet of a single
> > print job (I added the extra lines for legibility):
> > -----------
> > jobstart '-HMUTT' '-nomard' '-Plp' '-kcfA008MUTT' '-b752686'
> > '-t2003-02-18-16:15:53.000'
> >
> > start '-q29645' '-p241810' '-t2003-02-18-16:15:55.087' '-Aomard at MUTT+8'
> > '-nomard' '-Plp'
> >
> > filestart '-q29646' '-p241810' '-t2003-02-18-16:15:57.095'
> > '-Aomard at MUTT+8' '-nomard' '-Plp'
> >
> > fileend '-b9' '-T36' '-q29646' '-p241819' '-t2003-02-18-16:16:31.076'
> > '-Aomard at MUTT+8' '-nomard' '-Plp'
> >
> > end '-b9' '-T42' '-q29645' '-p241819' '-t2003-02-18-16:16:35.070'
> > '-Aomard at MUTT+8' '-nomard' '-Plp'
> >
> > jobend '-HMUTT' '-nomard' '-Plp' '-kcfA008MUTT' '-b752686'
> > '-t2003-02-18-16:16:35.000'
> >
> > -----------------
> >
> > All I need to do is pull out the user (-nomard, -name omard) and the
> > number of pages printed (fileend -p241819, subtract filestart -p241810).
> >
> > I can think of ways of pulling a single variable out (username, #pages
> > at start, #pages at end), but can't figure out how to pull out all 3
> > simultaneously.
> >
> > i'm hoping to parse through the past year's worth of logs and create a
> > cumulative total, broken down by user and month.
> >
> > I recently saw a perl regex that could do this, but it was too complex
> > for me to follow.
> >
> > Any suggestions, pointers, tips? I really need this report fairly soon,
> > unfortunately.
>
> I'm not quite sure I understand the problem. Is it possible to have
> either a '-nomard' or a '-name omard'?
>
> Here's my quick hack of a prototype to possibly get you started:
>
> #!/usr/bin/perl
>
>
>
> use strict;
>
>
> my ($user, $p1, $p2);
>
>
> while (<ARGV>) {
>
>
> /jobstart/ && ($user = substr((split(/\'/, $_))[3], 2));
> /filestart/ && ($p1 = substr((split(/\'/, $_))[3], 2));
> /fileend/ && ($p2 = substr((split(/\'/, $_))[7], 2));
> };
> print "$user ", $p2 - $p1, "\n";
>
>
> Does that produce anything like you're looking for???
--
Jonathan Glass
Systems Support Specialist II
Institute for Bioengineering & Bioscience
Georgia Institute of Technology
Email: jonathan.glass at ibb.gatech.edu
Office: 404-385-0127
Fax: 404-894-2291
More information about the Ale
mailing list