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

Re: Help on regular expression !!

Thread Previous | Thread Next
From:
John W. Krahn
Date:
August 3, 2009 08:00
Subject:
Re: Help on regular expression !!
Message ID:
4A76FB84.3070105@shaw.ca
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

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