常用数据

 

##日交易笔数
DAILYTRANNUM=`zcat $LOGPATH|wc -l|tail -n1|awk '{print $1}'`
echo "日交易笔数:$DAILYTRANNUM"

##日成功交易笔数
DAILYSUCTRANNUM=`zcat $LOGPATH|awk -F',' '{if($2=="0000"){print "SUC"}}'|wc -l|awk '{print $1}'`
echo "日成功交易笔数:$DAILYSUCTRANNUM"

##日失败交易笔数
DAILYFAILTRANNUM=`expr $DAILYTRANNUM - $DAILYSUCTRANNUM`
echo "日失败交易笔数:$DAILYFAILTRANNUM"

##每秒并发峰值
SPEAKTMP=`zcat $LOGPATH|awk -F'.' '{print $1}'|cut -c 9-14|sort|uniq -c|sort -nr|head -n1|awk '{print $1" '$TRANDATE'"$2}'`
echo "每秒并发峰值:$SPEAKTMP"

##每分钟并发峰值
MPEAKTMP=`zcat $LOGPATH|awk -F'.' '{print $1}'|cut -c 9-12|sort|uniq -c|sort -nr|head -n1|awk '{print $1" '$TRANDATE'"$2}'`
echo "每分钟并发峰值:$MPEAKTMP"

##每小时并发峰值
HPEAKTMP=`zcat $LOGPATH|wc -l|grep -v "total"|sort -nr|head -n1|awk '{print $1,$2}'|awk -F'[ .]' '{print $1" "$4}'`
echo "每小时并发峰值:$HPEAKTMP"

##日成功交易分类统计
echo "日成功交易分类统计:"
zcat $LOGPATH|awk -F',' '{if($2=="0000") {print $4}}'|sort|uniq -c|sort -nr

##失败交易TOP10
echo "失败交易TOP10:"
zcat $LOGPATH|awk -F',' '{if($2!="0000") {print $2}}'|sort|uniq -c|sort -nr|head -n10

 

将分为单位的数字字符串转换为以元为单位,并用千分位分隔的字符串:

/*输入值src:数字字符串,以分为单位

*输出值des:数字字符查,以元为单位,并用千分位分隔

*/

void amountofthousandBits(char src[], int srclen, char des[])
{
int iLoop=0;
int k=0;
int reallen = -1;
char tmpsrc[16];
memset(tmpsrc, 0x00, sizeof(tmpsrc));
k=srclen;
/* 计算有效长度 */
for(iLoop=0; iLoop<srclen; iLoop++)
{
  if(src[iLoop] != '0')
  {
    k =iLoop;
    break;
  }
}

/* 去掉0的长度 */
reallen = srclen-k;
int m=0;
for(m=0;m<reallen;m++)
{
  tmpsrc[m] = src[k+m];
}
if(reallen == 0)
{
  strcpy(des, "0.00");
}

if(reallen == 1)
{
  strcpy(des, "0.0");
  strncat(des, &tmpsrc[reallen-1],1);
}

if(reallen == 2)
{
  strcpy(des,"0.");
  strncat(des, &tmpsrc[reallen-2],1);
  strncat(des, &tmpsrc[reallen-1],1);
}

if(reallen>=3 && reallen<=5)
{
  for(k=0;k<reallen;k++){
    if(k==0)
    {
      strncpy(des,&tmpsrc[k],1);
    }else

    {

      if(k==reallen-2)
      {
        strcat(des,".");
        strncat(des,&tmpsrc[k],1);
      }else
      {
        strncat(des,&tmpsrc[k],1);
      }
    }
    }
  }

if(reallen>5)
{
  /* 需要加千分位整数位长度 */
  int tmpData=0;
  tmpData = reallen-2;
  /* 判断与3整除余数 */
  for(k=0;k<tmpData;k++)
  {
    if(k==0)
    {
      strncpy(des, &tmpsrc[k], 1);
    }
    else
    {
      if((tmpData-k)%3 == 0)
      {
        strncat(des,",",1);
        strncat(des,&tmpsrc[k],1);
      }
      else
      {
        strncat(des,&tmpsrc[k],1);
      }
    }
  }
strncat(des,".",1);
strncat(des,&tmpsrc[reallen-2],1);
strncat(des,&tmpsrc[reallen-1],1);
}

return ;

}

 

例子:


int main()
{
char src[20]="000100000000001";
char des[1024];
memset(des, 0x00, sizeof(des));
amountofthousandBits(src, strlen(src), des);

printf("src=%s, des=%s\n", src,des);
return 0;
}

结果:src=000100000000001, des=1,000,000,000.01

posted @ 2016-10-27 11:25  Hotz亚军  阅读(247)  评论(0)    收藏  举报