[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