filtering out certain output


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers filtering out certain output
# 1  
Old 10-04-2012
filtering out certain output

hi guys, i have a long output and cant figure out a flexible way to show the meta members from a device. please help. some device have 2,4 or 8 meta members but for this example i have 4 meta members, what is a flexible way to pull them out from this output? need your inputs thanks.

Code:
    Device Physical Name     : Not Visible

    Device Symmetrix Name    : 6AD2
    Device Serial ID         : N/A
    Symmetrix ID             : ****

    Device Group Name        : billyd3-snap1
    Device Logical Name      : D-data1

    Number of RAID Groups    : 0

    Attached BCV Device      : N/A

    Attached VDEV TGT Device : N/A

    Vendor ID                : EMC
    Product ID               : SYMMETRIX
    Product Revision         : 5875
    Device WWN               : ****
    Device Emulation Type    : FBA
    Device Defined Label Type: N/A
    Device Defined Label     : N/A
    Device Sub System Id     : 0x0060
    Cache Partition Name     : DEFAULT_PARTITION
    Bound Thin Pool Name     : 1000_7K_P1

    Device Block Size        : 512

    Device Capacity
        {
        Cylinders            :     131072
        Tracks               :    1966080
        512-byte Blocks      :  251658240
        MegaBytes            :     122880
        KiloBytes            :  125829120
        }

    Device External Identity
        {
        Device WWN           : ****

        Front Director Paths (4):
            {
            -----------------------------------
             DIRECTOR   PORT             LUN
            ----------  ---- -------- ---------
            Type Num    Sts  VBUS TID SYMM Host
            -----------------------------------
            FA   03F:0  RW   000  00  024  N/A
            FA   03F:1  RW   000  00  024  N/A
            FA   04F:0  RW   000  00  024  N/A
            FA   04F:1  RW   000  00  024  N/A
            }

        Geometry             : Native
            {
            Sectors/Track        :        128
            Tracks/Cylinder      :         15
            Cylinders            :     131072
            512-byte Blocks      :  251658240
            MegaBytes            :     122880
            KiloBytes            :  125829120
            }
        }

    Device Configuration     : TDEV            (Meta Head)

    Device is WORM Enabled   : No
    Device is WORM Protected : No

    SCSI-3 Persistent Reserve: Disabled

    Dynamic Spare Invoked    : No

    Dynamic RDF Capability   : RDF1_OR_RDF2_Capable

    STAR Mode                : No
    STAR Recovery Capability : None
    STAR Recovery State      : NA

    Device Service State     : Normal

    Device Status            : Ready            (RW)
    Device SA Status         : Ready            (RW)
    Device User Pinned       : FALSE
    Host Access Mode         : ACTIVE

    Extent Based Clone       : None

    Front Director Paths (4):
        {
        ----------------------------------------------------------------------
                                 POWERPATH  DIRECTOR   PORT             LUN
                                 --------- ----------  ---- -------- ---------
        PdevName                 Type      Type Num    Sts  VBUS TID SYMM Host
        ----------------------------------------------------------------------
        Not Visible              N/A       FA   03F:0  RW   000  00  024  N/A
        Not Visible              N/A       FA   03F:1  RW   000  00  024  N/A
        Not Visible              N/A       FA   04F:0  RW   000  00  024  N/A
        Not Visible              N/A       FA   04F:1  RW   000  00  024  N/A
        }

    Meta Configuration       : Concatenated
    Meta Device Members (4)  :
        {
        ----------------------------------------------------------------------
                               BCV  DATA                    RDF  DATA
                      ----------------------------  --------------------------
        Sym    Cap    Std Inv BCV Inv Pair          R1 Inv R2 Inv Pair
        Dev    (MB)   Tracks  Tracks  State         Tracks Tracks State
        ----------------------------------------------------------------------
    --> 6AD2  30720        -       -  N/A                -      - N/A
        6AD3  30720        -       -  N/A                -      - N/A
        6AD4  30720        -       -  N/A                -      - N/A
        6AD5  30720        -       -  N/A                -      - N/A
        ----------------------------------------------------------------------
             122880        -       -                     -      -
        }

from this long output i just need:
Code:
6AD2 
6AD3  
6AD4  
6AD5

and append it with this so my desired final output would be:

Code:
delete dev 6AD2;
delete dev 6AD3;
delete dev 6AD4;
delete dev 6AD5;

thanks a lot in advance.
# 2  
Old 10-04-2012
Have a go with this:

Code:
awk '
    /----/ { next; }
    /Meta Device Members/ {
        snarf = 1;
        split( $(NF-1), a, "(" );
        n = a[2]+0;
        next;
    }

    snarf == 1 && $1 == "Dev" { snarf = 2; next; }

    n > 0 && snarf > 1 {
        gsub( "-->", "" );
        n--;
        printf( "delete dev %s\n", $1 );
        next;
    }
' input-file

# 3  
Old 10-05-2012
do you mean to do it like this?

Code:
DEV=$1

symdg show $DEV -sid 123 >> showdev.txt

awk '
    /----/ { next; }
    /Meta Device Members/ {
        snarf = 1;
        split( $(NF-1), a, "(" );
        n = a[2]+0;
        next;
    }

    snarf == 1 && $1 == "Dev" { snarf = 2; next; }

    n > 0 && snarf > 1 {
        gsub( "-->", "" );
        n--;
        printf( "delete dev %s\n", $1 );
        next;
    }
' showdev.txt

its giving out

awk: syntax error near line 13
awk: illegal statement near line 13

---------- Post updated at 12:57 PM ---------- Previous update was at 12:33 PM ----------

i just thought about it, but cant translate it into commands, we can grep out '
Meta Device Members (4) :
then use the number 4 to increment the user input device id which is in hex form. in this scenario

6AD2 6AD3 6AD4 6AD5
# 4  
Old 10-05-2012
try something like this...
Code:
awk '/Meta Configuration/{a=1}
a==1 {if ($0 ~ /[0-9]/ && b > 2){gsub("-->","",$0);print "delete dev "$1";"}else if($0 ~ /-----/){b++}}
b==4{a=0}' file

# 5  
Old 10-05-2012
Code:
 
$ nawk '/Meta Device Members/{gsub("[()]","",$4);a=8+$4;for(i=1;i<a;i++){getline;if(i>=8)print "delete dev ",$(NF-7)}}' input.txt
delete dev  6AD2
delete dev  6AD3
delete dev  6AD4
delete dev  6AD5

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Filtering netstat command output

Hi All, I am trying to collect the listen ports info from netstat command in centos 7 From that info i am trying to collect all the foreign address IP for those ports. I am using below script to do the same. netstat -an |grep -w "LISTEN" |grep -v "127.0.0.1" |awk '{print $4}' >... (3 Replies)
Discussion started by: sravani25
3 Replies

2. Shell Programming and Scripting

Complex Output Filtering

Hi, I have this command on my linux jmap -heap $pid | grep '%\|:' the output of which is like below: I need a smart way to check if any of these memory usage crosses 95%, 90% and 85% i need to triggerAlert accordingly. I know how to trigger email alerts however I need a good way to... (3 Replies)
Discussion started by: mohtashims
3 Replies

3. UNIX for Dummies Questions & Answers

Filtering output from given input

Hi All, I have a input file as below. Input file may contain more hostlists. sample Input file $ cat hostlist.lst cs18-db1-1-sjl cs22-db1-1-was na88-db1-1-chi na21-db1-2-was I want the output like below format. Pls help. Thanks ! Output format: ... (4 Replies)
Discussion started by: kamauv234
4 Replies

4. Shell Programming and Scripting

filtering and formatting the output

Hi Team, I have input file like below. UNDEF : SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_CREATE_SUB_KEY, OTHER_PERMISSION : PROCR_READ, USER_NAME : oracle, GROUP_NAME : dba} UNDEF : SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION :... (4 Replies)
Discussion started by: kamauv234
4 Replies

5. Shell Programming and Scripting

Filtering

Hi I am interested in DNS resolving a set of sites and each time the output is different- $ host www.yahoo.com www.yahoo.com is an alias for fd-fp3.wg1.b.yahoo.com. fd-fp3.wg1.b.yahoo.com is an alias for ds-fp3.wg1.b.yahoo.com. ds-fp3.wg1.b.yahoo.com is an alias for... (1 Reply)
Discussion started by: jamie_123
1 Replies

6. AIX

Need help with filtering

Hi!! I have a bit of a task here and filtering/scripting not my strongest. I have to collect info of approx 1100 hdiskpower.so i have appended all the hdisk into a text file and i need it to run the command lscfg -vl to confirm if the drive is symmetrix. here's what i have so far at... (3 Replies)
Discussion started by: vpundit
3 Replies

7. Shell Programming and Scripting

filtering print output

I have these data below and i want my output to print only the 3rd files. For example, in /opt/home/nyfix/.k5login, i want to print only "nyfix". /opt/home/nyfix/.k5login /opt/home/security/.k5login /opt/home/noc/.k5login what is the appropriate command in shell scripting ? (2 Replies)
Discussion started by: linuxgeek
2 Replies

8. Shell Programming and Scripting

Please help me to do some filtering

I have to grep a pattern. scenario is like :- Suppose "/etc/sec/one" is a string, i need to check if this string contains "one" using any utility something like if /etc/sec/one | grep ; then Thanks in advance Renjesh Raju (3 Replies)
Discussion started by: Renjesh
3 Replies

9. Shell Programming and Scripting

filtering and sending sar output via email

We have a program which create sar output files which has a weeks data... To read file we use sar -f sa15 command which has multiple days data( a weeks data)....we need to only get last 48 hours data and email it to different users.... I guess we can use combination of sar -o or even awk.... (3 Replies)
Discussion started by: noorm
3 Replies

10. Shell Programming and Scripting

filtering a range of ports out of a netstat output

i'd like to grep a range of ports on a netstat -nt output, localaddress, say :1 to :1023. how do i do it via sed/awk/grep? Thanks, Marc (1 Reply)
Discussion started by: marcpascual
1 Replies
Login or Register to Ask a Question