Better to avoid having to make multiple passes if you can. This seems to fit the spec as presented.
#! perl -slw use strict; my( $lo, $hi ) = ( 700, 1200 ); my %seen; while( <DATA> ) { if( m[,...\s(\S+)\s\S+,..bn(\d+)] and $2 >= $lo and $2 <= $hi and not exists $seen{ $2 } ) { print "$2 - $1"; $seen{ $2 }++; } } __DATA__ spokanebase,Wed 24Sep03 17:59:19,50bn4575,88383 bytes spokanebase,Wed 24Sep03 17:59:17,49bn4196,88383 bytes spokanebase,Wed 24Sep03 17:59:10,48bn4550,88383 bytes memphisbase,Wed 24Sep03 17:59:08,27bn700,88383 bytes memphisbase,Wed 24Sep03 17:59:03,26bn5444,88383 bytes havrebase,Wed 24Sep03 17:58:46,20bn5285,88383 bytes havrebase,Wed 24Sep03 17:58:41,19bn4594,88383 bytes alliancebase,Wed 24Sep03 17:58:56,45bn5640,88383 bytes havrebase,Wed 24Sep03 17:58:46,20bn5285,88383 bytes havrebase,Wed 15Sep04 17:58:41,19bn1100,88383 bytes
Output:
c:\test>junk8 700 - 24Sep03 1100 - 15Sep04
In reply to Re: Using a Range to Parse a file and pull out Data?
by BrowserUk
in thread Using a Range to Parse a file and pull out Data?
by batcater98
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |