awk -F, 'BEGIN{
                 t0=0;
                 t122=0;
                 t9=0;
                 t=0;
                 }
                 $2~/DsmpOutMsg/&&$3~/resp/{
                                                                         a[$12]++;
                                                                         b[$12","$16]++;
                                                                         if($16=="56:0"){t0++;}
                                                                         if($16=="56:122"){t122++;}
                                                                         if($16~/56:9/){t9++;}
                                                                         t++;                                                                        
                }
                
                END{
                        miscid="0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 999"
                        for(i in a){        
                                                 sub(i,"",miscid);
                                                 printf "[DSMP:%s],(56:0),(56:122),(56:9),(DsmpOutMsg,resp)\n",i;
                                                 s0=0;
                                                 s122=0;
                                                 s9=0;
                                                 s=0+a[i];
                                                 for(j in b){
                                                                            split(j,M,",");
                                                                            if(M[1]==i){
                                                                                                     if(M[2]=="56:0"){s0+=b[j]};
                                                                                                     if(M[2]=="56:122"){s122+=b[j]};
                                                                                                     if(M[2]~/56:9/){s9+=b[j]};
                                                                            }
                                                 }
                                                 printf "%s \n%s \n%s \n%s\n",s0,s122,s9,s;
                        }
                        split(miscid,N," ");
                        for(k in N){
                                                 printf "[DSMP:%s],(56:0),(56:122),(56:9),(DsmpOutMsg,resp)\n0\n0\n0\n0\n",N[k];
                                                }
                printf "[DSMP:total],(56:0),(56:122),(56:9),(DsmpOutMsg,resp)\n%s \n%s \n%s \n%s\n",t0,t122,t9,t;
}' aaaa.log |sed 's/\[DSMP:999\]/\[DSMP:0999\]/'