常用数据
##日交易笔数
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

浙公网安备 33010602011771号