Format File

INPUT FILE

 
storage-view: PU04B_SV (cluster-1)
storage-view: PU04A_SV (cluster-1)
storage-view: PU03B_SV (cluster-1)
storage-view: PU03A_SV (cluster-1)
storage-view: PU02B_SV (cluster-1)
  virtual-volume: DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol (5.05G, local @ cluster-1, running)
    logical-unit: VPD83T3:60000970000195702009533033354246
            storage-array: EMC-SYMMETRIX-19570209
 
storage-view: PUCHA01_SV (cluster-1)
  virtual-volume: PUCHA01_1B8E_BOOT (101G, local @ cluster-1, running)
    logical-unit: VPD83T3:60000970000195702009533031423845
            storage-array: EMC-SYMMETRIX-19570209
 
 virtual-volume: device_CLARiiON247_LUN_00696_1_vol (34G, local @ cluster-1, unexported)
  logical-unit: VPD83T3:60060160026034008ee6649bcf48e411
          storage-array: EMC-CLARiiON-APM001309247
 
storage-view: HDIUS1N1_N2_SV (cluster-1)
  virtual-volume: device_HDIUS1N1_N2_Symm209_1BD3_1_vol (33.7G, local @ cluster-1, running)
   logical-unit: VPD83T3:60000970000195702009533031424433
            storage-array: EMC-SYMMETRIX-19570209
 

OUTPUT

PU04B_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,local,cluster-1,running,VPD83T3:60000970000195702009533033354246,EMC-SYMMETRIX-19570209
PU04A_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,local,cluster-1,running,VPD83T3:60000970000195702009533033354246,EMC-SYMMETRIX-19570209
PU03B_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,local,cluster-1,running,VPD83T3:60000970000195702009533033354246,EMC-SYMMETRIX-19570209
PU03A_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,local,cluster-1,running,VPD83T3:60000970000195702009533033354246,EMC-SYMMETRIX-19570209
PU02B_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,local,cluster-1,running,VPD83T3:60000970000195702009533033354246,EMC-SYMMETRIX-19570209
PUCHA01_SV,PUCHA01_1B8E_BOOT,local,cluster-1,running,VPD83T3:60000970000195702009533031423845,EMC-SYMMETRIX-19570209
,device_CLARiiON247_LUN_00696_1_vol,local,cluster-1,unexported,VPD83T3:60060160026034008ee6649bcf48e411,EMC-CLARiiON-APM001309247
HDIUS1N1_N2_SV,device_HDIUS1N1_N2_Symm209_1BD3_1_vol,local,cluster-1,running,VPD83T3:60000970000195702009533031424433,EMC-SYMMETRIX-19570209

TRIED THIS ..

 
 gawk  'BEGIN{ RS="\n"}
        /storage-view:/ { SNAME=$2";"SNAME
        CNTwwn=split(SNAME,Xwwn) }
       /virtual-volume:/ { VV=$2 ; HA=$4;BA=$6;RA=$7}
       /logical-unit:/ { LL=$2 }
       /storage-array:/ {SA=$2
             for (i=1; i<=CNTwwn ; i+=1)
                printf "%s\,%s,%s,%s,%s,%s,%s\n", VV,Xwwn,LL,HA,BA,RA,SA  > "outputfile"
                FS=" "
}' inputfile
 

Not really getting the required output ... pls help .. thx

You're not too far off. Try

awk  '
/storage-view:/         {SNAME[++CNT]=$2
                        }
/virtual-volume:/       {VV=$2
                         HA=$4
                         BA=$6
                         RA=$7
                        }
/logical-unit:/         {LL=$2
                        }
/storage-array:/        {SA=$2
                         for (i=1; i<=CNT; i++)
                         printf "%s,%s,%s,%s,%s,%s,%s\n", SNAME, VV, LL, HA, BA, RA, SA
                         CNT=0
                        }
' file
PU04B_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,VPD83T3:60000970000195702009533033354246,local,cluster-1,,running),EMC-SYMMETRIX-19570209
PU04A_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,VPD83T3:60000970000195702009533033354246,local,cluster-1,,running),EMC-SYMMETRIX-19570209
PU03B_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,VPD83T3:60000970000195702009533033354246,local,cluster-1,,running),EMC-SYMMETRIX-19570209
PU03A_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,VPD83T3:60000970000195702009533033354246,local,cluster-1,,running),EMC-SYMMETRIX-19570209
PU02B_SV,DEVICE_SYMM209_PUCC_SHARED_35BF_1_vol,VPD83T3:60000970000195702009533033354246,local,cluster-1,,running),EMC-SYMMETRIX-19570209
PUCHA01_SV,PUCHA01_1B8E_BOOT,VPD83T3:60000970000195702009533031423845,local,cluster-1,,running),EMC-SYMMETRIX-19570209
HDIUS1N1_N2_SV,device_HDIUS1N1_N2_Symm209_1BD3_1_vol,VPD83T3:60000970000195702009533031424433,local,cluster-1,,running),EMC-SYMMETRIX-19570209
1 Like

Thx .....works fine ,except for part where "storage-view:" does not exist in the block of data

 
 virtual-volume: device_CLARiiON247_LUN_00696_1_vol (34G, local @ cluster-1, unexported)
  logical-unit: VPD83T3:60060160026034008ee6649bcf48e411
          storage-array: EMC-CLARiiON-APM001309247
 

need this also in the ouput ... where 1st column will be empty

,device_CLARiiON247_LUN_00696_1_vol,local,cluster-1,unexported,VPD83T3:60060160026034008ee6649bcf48e411,EMC-CLARiiON-APM001309247

Try

awk  '
/storage-view:/         {SNAME[++CNT]=$2
                        }
/virtual-volume:/       {if (!CNT) SNAME[++CNT]=""
                         VV=$2
                         HA=$4
                         BA=$6
                         RA=$7
                        }
/logical-unit:/         {LL=$2
                        }
/storage-array:/        {SA=$2
                         for (i=1; i<=CNT; i++)
                         printf "%s,%s,%s,%s,%s,%s,%s\n", SNAME, VV, LL, HA, BA, RA, SA
                         CNT=0
                        }
' file

Perfect .... Thx !!

So what does this statement does ?

if (!CNT) SNAME[++CNT]=""

With the assumption that storage-view: ALWAYS precedes the respective virtual-volume: , a CNT of 0 indicates there hasn't been a storage-view when the virtual-volume is encountered, and it creates an empty SNAME.

1 Like