Input are file and file1
file contains
store.bal
product.bal
category.bal
admin.bal
file1 contains
flip.store.bal ::FFFF:BADC:CD28,::FFFF:558E:11C5,6,8,2,1,::FFFF:81C8:CA8B,::FFFF:BADC:CD28,1,0,0,0,::FFFF:81C8:11C5,2,1,0,0,::FFFF:81DC:3111,1,0,1,0
store.bal. ::FFFF:F9CC:C5B9,::FFFF:356F:73C3,4,8,7,6,::FFFF:93CC:C9CF,::FFFF:F9CC:C5B9,1,0,0,0,::FFFF:93CC:73C3,2,1,0,0,::FFFF:93CC:3371,1,0,1,0
es.product.bal. ::FFFF:F9CC:C5B9,::FFFF:356F:73C3,4,8,7,6,::FFFF:93CC:C9CF,::FFFF:F9CC:C5B9,1,0,0,0,::FFFF:93CC:73C3,2,1,0,0,::FFFF:93CC:3371,1,0,1,0
many.category.bal. ::FFFF:F9CC:C5B9,::FFFF:356F:73C3,4,8,7,6,::FFFF:93CC:C9CF,::FFFF:F9CC:C5B9,1,0,0,0,::FFFF:93CC:73C3,2,1,0,0,::FFFF:93CC:3371,1,0,1,0
comp.admin.bal. ::FFFF:732B:649F,::FFFF:23EB:6EB2,2,3,8,7,::FFFF:FE66:6367,::FFFF:732B:649F,1,0,0,0,::FFFF:FE66:6EB2,2,1,0,0,::FFFF:FE2B:FE61,1,0,1,0
admin.bal. ::FFFF:FB85:A1BE,::FFFF:BC64:B35B,9,1,5,9,::FFFF:E3A2:AB2F,::FFFF:FB85:A1BE,1,0,0,0,::FFFF:E3A2:B35B,2,1,0,0,::FFFF:E385:13B1,1,0,1,0
output
store.bal|8|54
product.bal|4|31
category.bal|4|31
admin.bal|8|56
in above code insted of each field replace with file ... presently code is reading only one filed for ex: store.bal
cat file1|awk '{split($1,dp,"."); lend=length(dp); if(lend>2) { dom=dp[lend-2]"."dp[lend-1];
split($2,ipl,","); for(i=1; i<=length(ipl); i++)
{ if(ipl~/:/) {
if(ipl[i+1]~/:/) i++; rip=ipl; i++; raq=ipl; rtq=0; si=i+4;
for(;i<si;i++) rtq+=ipl; rsub=""; r32ip="";
if(rip ~ /^::FFFF:/) { r32ip=rip; rsub=substr(rip,8,7);
}
print tolower(dom)"|"rip"|"r32ip"|"rsub"|"raq"|"rtq; i--}} }
}' |awk -F "|" '{if($1=="store.bal" && $4 != "") { cnt[$4]=1; cnt2[$3]++; qc+=$6; }}
................
if($1=="store.bal" && $4 != "") { cnt[$4]=1; cnt2[$3]++; qc+=$6; }} in this line, instead of store.bal ,need to call file having all 4 data i.e store.bal,procut.bal,caterogy.bal and admin.bal