[boulder.pm] FW: text extract
Justin Crawford
Justin.Crawford at cusys.edu
Wed Jul 25 18:02:38 CDT 2001
Thanks Chip. My first example was misleading. It's more like:
-
haystack
haystack
haystack
;
-
haystack
haystack
NEEDLE!
haystack
;
Still, I can see how that first solution could do it; I'll make that one go.
I was thinking there must be some way to do it using the range operators
(...) in combination with another pattern match, or using undef $/, but I
can't figure that way out if it exists. Probably I'm trying too hard to be
superelite and not trying hard enough to get the thing writ...
Justin
-----Original Message-----
From: Chip Atkinson [mailto:chip at rmpg.org]
Sent: Wednesday, July 25, 2001 3:50 PM
To: 'boulder-pm-list at happyfunball.pm.org'
Subject: Re: [boulder.pm] FW: text extract
While perhaps not the best way, here's a way at least
$start_looking = 0;
while (<>)
{
if (/2a/)
{
$start_looking = 1;
next;
}
if ($start_looking && /NEEDLE/)
{
print ("Found it\n");
exit;
}
}
Another possibility is to read in the entire file in slurp mode and look
for a pattern like /2a.*NEEDLE.*/.
Chip
On Wed, 25 Jul 2001, Justin Crawford wrote:
> Whoa, got ahead of myself there...
>
> I'm trying to extract multiple lines of data from a text file, only if one
> of the lines contains a string. Picture a file like so:
>
> 1a
> haystack
> haystack
> haystack
> haystack
> 1b
>
> 2a
> haystack
> haystack
> NEEDLE!!!
> haystack
> 2b
>
> I want to cruise the text file getting every chunk that's like the one
from
> 2a to 2b.
>
> What's the best way?
>
> Thanks!
>
> Justin Crawford
> Oracle DBA Team
> University of Colorado Management Systems
> 303-492-9083
>
More information about the Boulder-pm
mailing list