Substring between third and fourth occurrence

Hi ,

Please help me to get the data extracted between the 3rd and 4th dot of a transaction file.

 
Source data
TRANS,ARRIVED,ABC.1Gt.CDRFLOW123.MAINFRAMES.SYS.tXT/ARRIVED,TRANS/CDRFLOW123.MAINFRAMES.SYS.tXT/ARRIVED,TRANS 
TRANS,DELIVERED,ABC.1Gt.CDRFLOW123.MAINFRAMES.SYS.tXT/DELIVERED,TRANS/CDRFLOW123.MAINFRAMES.SYS.tXT/DELIVERED,TRANS
 
 
TargetData
TRANS,ARRIVED,ABC.1Gt.CDRFLOW123.MAINFRAMES.SYS.tXT/MAINFRAMES_ARRIVED,TRANS/CDRFLOW123.MAINFRAMES.SYS.tXT/MAINFRAMES_ARRIVED,TRANS 
TRANS,DELIVERED,ABC.1Gt.CDRFLOW123.MAINFRAMES.SYS.tXT/MAINFRAMES_DELIVERED,TRANS/CDRFLOW123.MAINFRAMES.SYS.tXT/MAINFRAMES_DELIVERED,TRANS
 
 

I am trying to extract the data between 3rd and 4th dot ABC.1Gt.CDRFLOW123.MAINFRAMES.SYS.tXT and I need to place the extracted data in the same column after the '/' charcter.

I didtn't try any code as of now, I am searching this forum for some awk scripts to do the same.

Thx,wangkc

Hi
Not clear with your question. You said between 3rd and 4th dot, which is application to the third field(assuming , as delimiter). However, for the 4th field, I assumed it to be between 1st and 2nd dot:

$ cat a
TRANS,ARRIVED,ABC.1Gt.CDRFLOW123.MAINFRAMES.SYS.tXT/ARRIVED,TRANS/CDRFLOW123.MAINFRAMES.SYS.tXT/ARRIVED,TRANS
TRANS,DELIVERED,ABC.1Gt.CDRFLOW123.MAINFRAMES.SYS.tXT/DELIVERED,TRANS/CDRFLOW123.MAINFRAMES.SYS.tXT/DELIVERED,TRANS


$ awk '{split($3,a,/\./);split($3,b,/\//);$3=b[1]"/"a[4]"_"b[2];split($3,a,/\./);split($4,a,/\./);split($4,b,/\//);$4=b[1]"/"b[2]"/"a[2]"_"b[3];}1' FS=, OFS=, a
TRANS,ARRIVED,ABC.1Gt.CDRFLOW123.MAINFRAMES.SYS.tXT/MAINFRAMES_ARRIVED,TRANS/CDRFLOW123.MAINFRAMES.SYS.tXT/MAINFRAMES_ARRIVED,TRANS
TRANS,DELIVERED,ABC.1Gt.CDRFLOW123.MAINFRAMES.SYS.tXT/MAINFRAMES_DELIVERED,TRANS/CDRFLOW123.MAINFRAMES.SYS.tXT/MAINFRAMES_DELIVERED,TRANS

$

Guru.