Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^6: Search and delete

by pr33 (Scribe)
on Dec 16, 2014 at 00:06 UTC ( [id://1110431]=note: print w/replies, xml ) Need Help??


in reply to Re^5: Search and delete
in thread Search and delete

Here is the Data
data array A physicaldrive 2C:1:1 port 2C:box 1:bay 1 SAS 1 TB OK physicaldrive 2C:1:2 port 2C:box 1:bay 2 SAS 1 TB OK array B physicaldrive 2C:1:3 port 2C:box 1:bay 3 SAS 1 TB OK physicaldrive 2C:1:4 port 2C:box 1:bay 4 SAS 1 TB OK array C physicaldrive 3C:1:5 port 3C:box 1:bay 5 SAS 1 TB OK physicaldrive 3C:1:6 port 3C:box 1:bay 6 SAS 1 TB OK array D physicaldrive 3C:1:7 port 3C:box 1:bay 7 SAS 1 TB OK physicaldrive 3C:1:8 port 3C:box 1:bay 8 SAS 1 TB OK array E physicaldrive 4C:2:1 port 4C:box 2:bay 1 SAS 1 TB OK physicaldrive 4C:2:2 port 4C:box 2:bay 2 SAS 1 TB OK array F physicaldrive 4C:2:3 port 4C:box 2:bay 3 SAS 1 TB OK physicaldrive 4C:2:4 port 4C:box 2:bay 4 SAS 1 TB OK array G physicaldrive 5C:2:5 port 5C:box 2:bay 5 SAS 1 TB OK physicaldrive 5C:2:6 port 5C:box 2:bay 6 SAS 1 TB OK array H physicaldrive 5C:2:7 port 5C:box 2:bay 7 SAS 1 TB OK physicaldrive 5C:2:8 port 5C:box 2:bay 8 SAS 1 TB OK array I physicaldrive 6C:3:1 port 6C:box 3:bay 1 SAS 1 TB OK physicaldrive 6C:3:2 port 6C:box 3:bay 2 SAS 1 TB OK array J physicaldrive 6C:3:3 port 6C:box 3:bay 3 SAS 1 TB OK physicaldrive 6C:3:4 port 6C:box 3:bay 4 SAS 1 TB OK array K physicaldrive 7C:3:5 port 7C:box 3:bay 5 SAS 1 TB OK physicaldrive 7C:3:6 port 7C:box 3:bay 6 SAS 1 TB OK unassigned physicaldrive 7C:3:7 port 7C:box 3:bay 7 SAS 1 TB OK physicaldrive 7C:3:8 port 7C:box 3:bay 8 SAS 1 TB OK

Replies are listed 'Best First'.
Re^7: Search and delete
by GotToBTru (Prior) on Dec 16, 2014 at 01:26 UTC

    It seems that you are not really deleting lines from a file, more filtering the output of a command.

    Would it be safe to assume that you would want to resume printing when the next line starts with 'array'? If so, I would suggest setting a print flag to 1 initially, and then in the loop setting it to 0 if 'unassigned' shows up, and reset it to 1 if 'array' shows up. Then print to output if the print flag = 1.

    my %unitMap; my $cmd = "hpacucli ctrl slot=0 pd all show";; open my $fd, "$cmd|" or return \%unitMap; my $printit = 1; while (my $row = <$fd>) { next if $row =~ /^$|Smart/; $printit = 0 if $row =~ /^\s*unassigned$/; $printit = 1 if $row =~ /^\s*array .$/; next unless $printit; # moved processing to here; no need to manipulate lines you're + not going to print anyway $row =~ s/^\s+//; $row =~ s/[,|)|(]//g; print "$row"; } close $fd;
    1 Peter 4:10
Re^7: Search and delete
by pr33 (Scribe) on Dec 16, 2014 at 00:07 UTC
    The unassigned can appear any where in the file . Basically, I am trying to delete the line containing unassigned and the 2 lines after unassigned .

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1110431]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2024-04-20 02:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found