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 AsimovThread Previous | Thread Next