develooper Front page | perl.beginners | Postings from August 2009

Re: Help on regular expression !!

Thread Previous | Thread Next
From:
jet speed
Date:
August 3, 2009 08:34
Subject:
Re: Help on regular expression !!
Message ID:
b43e0e600908030833x4eff21fbx148ee785149f2671@mail.gmail.com
On Mon, Aug 3, 2009 at 4:00 PM, John W. Krahn <jwkrahn@shaw.ca> wrote:

> jet speed wrote:
>
>> Guys,
>>
>
> Hello,
>
> I am new to perl,  I am having trouble capturing the required output from
>> the command, with my limited knowlege i tried to put something togather.
>> not
>> sure how to proceed beyond.
>>
>
> In a regular expression, when you want to capture part of a pattern you
> have to enclose that part in parentheses.
>
>
> What i am trying to achieve
>> for certain drives ex : B3494_901, B3494_102 from the outputlist is to
>>  find
>> the index number ex: 19 for drive  B3494_102 as in the output below
>>  then collect the different index number for these selected drives  in a
>> variable $idx = 1:2:19:5
>>  then i can use the $idx inside the command 'tpconfig -multiple_delete
>> -drive $idx '
>>
>> Any help would be much appericiated.
>>
>> Script
>>
>> use strict;
>> use warnings;
>>
>> my @tpd = `tpconfig -dl`;
>> my $idx;
>> my $drv;
>>
>> foreach my $line (@tpd) {
>> chomp $line;
>> #$line  =~ m/^Index\s+\d\d/ && do {
>> $line  =~ m/^Index\w+/ && do {
>>
>
> It looks like the pattern you want is more like:
>
> $line =~ /
>         ^         # start of string
>         \s+       # followed by whitespace
>         Index     # match literal string
>         \s+       # followed by whitespace
>         ( \d+ )   # match and capture any numerical digits
>         /x
>
>
> $idx = $1;
>> print "$idx \n";
>> };
>> $line =~ /^Drive.*\s+\w\d+/ && do {
>>
>
> $line =~ /
>         ^             # start of string
>         \s+           # followed by whitespace
>         Drive\ Name   # match literal string
>         \s+           # followed by whitespace
>         ( \w+ )       # match and capture any word characters
>         /x
>
>
> $drv =$1;
>> print "$drv /n";
>> };
>>
>> }
>>
>>
>> (  tpconfig -dl  )command output below
>>
>>
>>
>>       Drive Name              B3494_102
>>        Index                   19
>>        NonRewindDrivePath      /dev/rmt/23cbn
>>        Type                    hcart2
>>        Status                  DOWN
>>        SCSI Protection         SR (Global)
>>        Shared Access           Yes
>>        TLH(0)  IBM Device Number=974680
>>        Serial Number           000007897468
>>
>> Different Drives
>>
>>        Drive Name              B3494_901
>>        Drive Name              B3494_100
>>        Drive Name              B3494_102
>>
>
>
> John
> --
> Those people who think they know everything are a great
> annoyance to those of us who do.        -- Isaac Asimov
>
> --
> To unsubscribe, e-mail: beginners-unsubscribe@perl.org
> For additional commands, e-mail: beginners-help@perl.org
> http://learn.perl.org/
>
>
>
Hi John, Thanks for your help, Much appreciated.  Please could you also
refer any good reference for Regular expression for a beginer like me, would
be great.
Cheers, Sj

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About