Parsing help ( awk)

Input File ( this is a sample record )

 
Storage Group Name:    DRT_ny-iadsql1-c_ny-iadsql2-c
Storage Group UID:     00:21:E9:C7:2D:E0:E1:11:82:CC:00:60:16:10:04:0A
HBA/SP Pairs:
  HBA UID                                          SP Name     SPPort
  -------                                          -------     ------ 
  20:00:00:00:C9:9E:07:11:10:00:00:00:C9:9E:07:11   SP A         0
  20:00:00:00:C9:9E:07:11:10:00:00:00:C9:9E:07:11   SP B         1
  20:00:00:00:C9:9E:1F:6A:10:00:00:00:C9:9E:1F:6A   SP B         0
  20:00:00:00:C9:9E:1F:6A:10:00:00:00:C9:9E:1F:6A   SP A         1
HLU/ALU Pairs:
  HLU Number     ALU Number
  ----------     ----------
HLU/SLU Pairs:
 HLU No.  SNAP SHOT UID                                     SNAP SHOT NAME
 ------  -----------------------------------------------    --------------
 1       60:06:01:60:32:BB:21:00:B0:AB:B3:FD:33:E0:E1:11      ny-iadsql1_2-cj-2450-0916-31_DRBCV
 2       60:06:01:60:32:BB:21:00:CC:07:E9:04:34:E0:E1:11      ny-iadsql1_2-cj-2450-0916-32_DRBCV
 0       60:06:01:60:32:BB:21:00:0E:DF:3F:17:9F:00:E3:11      ny-iadsql1-cj_nypiadsql2-cj_LUN_1216_R2_DRBCV

Need the output in this format

 
UID,SNAPSHOTNAME,HLU,STORAGEGROUP
60:06:01:60:32:BB:21:00:B0:AB:B3:FD:33:E0:E1:11,nyp-iadsql1_2-cj-2450-0916-31_DRBCV,1,DRT_ny-iadsql1-c_ny-iadsql2-c
60:06:01:60:32:BB:21:00:CC:07:E9:04:34:E0:E1:11,nyp-iadsql1_2-cj-2450-0916-32_DRBCV,2,DRT_ny-iadsql1-c_ny-iadsql2-c
60:06:01:60:32:BB:21:00:0E:DF:3F:17:9F:00:E3:11,nyp-iadsql1-cj_nypiadsql2-cj_LUN_1216_R2_DRBCV,0,DRT_ny-iadsql1-c_ny-iadsql2-c

The file has number of records like this ....

Thanks

If perl is ok:

perl -lane 'if (/Name:\s+(\S+)/){$group=$1};if(/^\s*(\d+)\s+(\S+)\s+(\S+)/i && $group){print $2.",".$3.",".$1.",".$group}' infile 
1 Like

I do assume that the p here is a typo?
60:06:01:60:32:BB:21:00:B0:AB:B3:FD:33:E0:E1:11,nyp-iadsql1_2-cj-2450-0916-31_DRBCV,1,DRT_ny-iadsql1-c_ny-iadsql2-c

Using awk

awk '/Name:/ {n=$4} $0~/^ *[0-9]+ +/ {print $2,$3,$1,n}' OFS=","
1 Like