Hello to all in forum,
Maybe an awk expert could help me with this complex task for me.
I have the input shown below and I would like to get the output as follow:
- I would like the output separated by commas.
- The header is fixed and will be the same always.
- For the lines containing OCTDP, TCTDP and GPRSTDP I would like to join their values separated by "|", so they joined in the output will represent a single field (I've highlighted for best understanding)
- Each value below " CAMEL SUBSCRIPTION OPTIONS" would go in different fields in the output.
- When any value is not found, leave blank.
Output desired:
MSISDN,OCTDP,TCTDP,GPRSTDP,GCSO,MCSO,SSLO,GC2SO,MC2SO,TIF,GPRSSO,OSMSSO,GC3SO,MC3SO,GC4SO,MC4SO,MMSO
20385503286,2|15|2038759581|0|2||0,18|15|2038759581|1|2|Y|,,0,5,0,1,2,0,1,0,1,0,1,1,1
20386671719,2|15|2038759581|0|2||7,18|15|2038759594|1|2|Y|,18|15|20387592403|0|3||,0,5,0,1,2,0,1,0,1,2,1,2,0
20387323200,,18|15|2038759581|1|2|Y|,18|15|20387592403|0|3||,1,3,0,1,2,0,1,1,0,2,2,2,2
The Input is:
<HGCMP:MSISDN=20385503286,OPT;
HLR CAMEL SUBSCRIPTION DATA
MSISDN CSP
20385503286
TDPTYPE TDP SK GSA DEH CCH I DIALNUM
OCTDP 2 15 2038759581 0 2
TCTDP 18 15 2038759581 1 2 Y
CAMEL SUBSCRIPTION OPTIONS
GCSO MCSO SSLO GC2SO MC2SO TIF GPRSSO OSMSSO
0 5 0 1 2 0 1 0
GC3SO MC3SO GC4SO MC4SO
1 0 1 1
MMSO
1
END
<HGCMP:MSISDN=20386671719,OPT;
HLR CAMEL SUBSCRIPTION DATA
MSISDN CSP
20386671719
TDPTYPE TDP SK GSA DEH CCH I DIALNUM
OCTDP 2 15 2038759581 0 2 7
TCTDP 18 15 2038759594 1 2 Y
GPRSTDP 18 15 20387592403 0 3
CAMEL SUBSCRIPTION OPTIONS
GCSO MCSO SSLO GC2SO MC2SO TIF GPRSSO OSMSSO
0 5 0 1 2 0 1 0
GC3SO MC3SO GC4SO MC4SO
1 2 1 2
MMSO
0
END
<HGCMP:MSISDN=20387323200,OPT;
HLR CAMEL SUBSCRIPTION DATA
MSISDN CSP
20387323200
TDPTYPE TDP SK GSA DEH CCH I DIALNUM
TCTDP 18 15 2038759581 1 2 Y
GPRSTDP 18 15 20387592403 0 3
CAMEL SUBSCRIPTION OPTIONS
GCSO MCSO SSLO GC2SO MC2SO TIF GPRSSO OSMSSO
1 3 0 1 2 0 1 1
GC3SO MC3SO GC4SO MC4SO
0 2 2 2
MMSO
2
END
Thanks in advance for any help.