Kurt Faymon wrote:
> 
> Given the Input of:
> 
> <H1>whatever.....
> <H2>whatever.....
> <H3>whatever.....
> <H4>whatever.....
> <p>whatever.....
> <H2>whatever.....
> <H3>whatever.....
> <H4>whatever.....
> <p>whatever.....
> <H3>whatever.....
> <H4>whatever.....
> <p>whatever.....
> <H3>whatever.....
> <H4>whatever.....
> <p>whatever.....
> <H4>whatever.....
> <p>whatever.....
> <p>
> 
> How can I read in the records bases on 'blocks starting with <H,, that is
> grouped as follows:
> 
> Record1:
> <H1>whatever.....
> <H2>whatever.....
> <H3>whatever.....
> <H4>whatever.....
> <p>whatever.....
> 
> Record2:
> <H2>whatever.....
> <H3>whatever.....
> <H4>whatever.....
> <p>whatever.....
> 
> Record3:
> <H3>whatever.....
> <H4>whatever.....
> <p>whatever.....
> 
> Record 4:
> <H3>whatever.....
> <H4>whatever.....
> <p>whatever.....
> 
> Record 5:
> <H4>whatever.....
> <p>whatever.....
> <p>



$ cat test01.txt
<H1>whatever.....
<H2>whatever.....
<H3>whatever.....
<H4>whatever.....
<p>whatever.....
<H2>whatever.....
<H3>whatever.....
<H4>whatever.....
<p>whatever.....
<H3>whatever.....
<H4>whatever.....
<p>whatever.....
<H3>whatever.....
<H4>whatever.....
<p>whatever.....
<H4>whatever.....
<p>whatever.....
<p>
$ perl -ne'
/^<H/../^<p>/ and $rec[$a] .= $_;
/^<p>/ and $a++}{
print"Record $_:\n$rec[$_]\n" for 0..$#rec
' test01.txt
Record 0:
<H1>whatever.....
<H2>whatever.....
<H3>whatever.....
<H4>whatever.....
<p>whatever.....

Record 1:
<H2>whatever.....
<H3>whatever.....
<H4>whatever.....
<p>whatever.....

Record 2:
<H3>whatever.....
<H4>whatever.....
<p>whatever.....

Record 3:
<H3>whatever.....
<H4>whatever.....
<p>whatever.....

Record 4:
<H4>whatever.....
<p>whatever.....


Or if you don't want a one-liner.  :-)

my $records;
my $index;
while ( <> ) {
    if ( /^<H/ .. /^<p>/ ) {
        $records[$index] .= $_;
        }
    $index++ if /^<p>/;
    }

for my $index ( 0 .. $#records ) {
    print "Record $index:\n$records[$index]\n";
    }

__END__



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to