On Nov 22, 6:57 am, [EMAIL PROTECTED] (Avinashsuratkal)
wrote:
> On Nov 22, 2:22 pm, [EMAIL PROTECTED] (Avinashsuratkal)
> wrote:
>
>
>
> > On Nov 22, 2:27 am, [EMAIL PROTECTED] (Yitzle) wrote:
>
> > > On Nov 21, 2007 11:28 AM, avinashsuratkal <[EMAIL PROTECTED]> wrote:
>
> > > > Hi,
>
> > > > I have the following log and my requirement is to capture the block
> > > > from one "-->" symbol to another. and put it in other file, using
> > > > perl.
>
> > > > ---------------------------------
> > > >  --> Checking Server Hostname <--
> > > > ---------------------------------
> > > >         Server Hostname: xxxxxxxxx
> > > > ---------------------------------------
> > > >  --> Checking Authentication Domain <--
> > > > ---------------------------------------
> > > >         Server is authenticating against: xxxxxxxxx
>
> > > > --------------------------------------
> > > >  --> Validating DNS Server Entries <--
> > > > --------------------------------------
> > > >         Servers should conform to global ANYCast Standard
>
> > > > Thanks
> > > > Avinash
>
> > > You mean you want to turn the above input into somthing like this?
> > > -------------------------------------
> > >  Checking Server Hostname
> > >  Checking Authentication Domain
> > >  Validating DNS Server Entries
> > > -------------------------------------
>
> > > $ perl -e 'while(<>){print "$1\n" if /-->(.*)<--/; }' inputFile > 
> > > outputFile- Hide quoted text -
>
> > > - Show quoted text -
>
> > Hi Yitzle,
>
> > Thank you for the reply...
>
> > I want my output to be entered temporary in /tmp/output for further
> > processing.
>
> >  --> Checking Server Hostname <--
> >  ---------------------------------
> >         Server Hostname: xxxxxxxxx
>
> > Thanks.- Hide quoted text -
>
> > - Show quoted text -
>
> Hi,
>
> In short I need to read the text between 2 lines, which can be
> incorporated in the perl script, but not a one-liner.
>
> Thanks,

You're not very clear in your question, but my understanding is that
you want the line of text following /-->(.*)<--/


#!/usr/bin/perl

use strict;
use warnings;

my $last_line;
while(my $current_line = <DATA>) {
   if ($last_line && $last_line =~ /^-+$/) {
      print $current_line unless $current_line =~ /-->.+<--/;
   }
   $last_line = $current_line;
}

__DATA__
---------------------------------
 --> Checking Server Hostname <--
---------------------------------
        Server Hostname: xxxxxxxxx
---------------------------------------
 --> Checking Authentication Domain <--
---------------------------------------
        Server is authenticating against: xxxxxxxxx

--------------------------------------
 --> Validating DNS Server Entries <--
--------------------------------------
        Servers should conform to global ANYCast Standard


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to