利用awk统计话单的案例
来源:互联网 发布:淘宝购物有发票吗 编辑:程序博客网 时间:2024/04/29 14:54
1、 将脚本collect.sh上传至业务程序家目录$ENIP_HOME下
2、执行下述命令赋予文件执行权限
chmod a+7 collect.sh
3、按照如下格式执行话单统计
./collect.sh 用户账号日期
用户账号:即要统计的目标号码(没有格式要求)
日期:格式须如20140101相同
4、举例说明:
<218 linux [core] :/home/test>./test.sh 861064298888 20140104
861064298888 Total send times is: 16380 //用户在20141008当天发送短信数量
--------------------------------------------
861064298888 Total success receive times is: 16434//用户在20141008当天接收成功回执数量
--------------------------------------------
861064298888 Total fail receive times is: 0 //用户在20141008当天接收失败回执数量
--------------------------------------------
861064298888 Total receive times is: 16434 //用户在20141008当天接收回执总数
--------------------------------------------
861064298888 Total repeat_send times is: 0 //用户在20141008当天由于失败重复发送回执的数量
shell脚本如下:
#!/bin/bash
#set -x
ACCOUNT=$1
DATE=$2
SENDACCOUNT=`find ./cdr/sipmobill/bak -name "*$2*.unl" | xargs more | awk -F, '{if ($2==3 && $4~/'$ACCOUNT'/) print $0}' | wc -l`
RECEIVE_SUCCESS=`find ./cdr/sipmtbill/bak -name "*$2*.unl" | xargs more | awk -F, '{if (($2==7 && $8~/'$ACCOUNT'/) && $17==200) print $1}' | sort | uniq -c | wc -l`
RECEIVE_FAIL=`find ./cdr/sipmtbill/bak -name "*$2*.unl" | xargs more | awk -F, '{if (($2==7 && $8~/'$ACCOUNT'/) && $17!=200) print $1}'| sort | uniq -c | wc -l`
RECEIVE_ALL=`find ./cdr/sipmtbill/bak -name "*$2*.unl" | xargs more | awk -F, '{if ($2==7 && $8~/'$ACCOUNT'/) print $1}'| sort | uniq -c | wc -l`
REPEAT_SEND=`find ./cdr/sipmtbill/bak -name "*$2*.unl" | xargs more | awk -F, '{if (($2==7 && $9!=1 ) && ($17==200 && $8~/'$ACCOUNT'/)) print $0}'| sort | uniq -c | wc -l`
echo -e "\n"
if [ -z $SENDACCOUNT ]; then
echo -e "$1 total send times is: 0\n"
else
echo -e "$1 Total send times is: $SENDACCOUNT\n"
fi
echo -e "--------------------------------------------\n"
if [ -z $RECEIVE_SUCCESS ]; then
echo -e "$1 total success receive times is: 0\n"
else
echo -e "$1 Total success receive times is: $RECEIVE_SUCCESS\n"
fi
echo -e "--------------------------------------------\n"
if [ -z $RECEIVE_FAIL ]; then
echo -e "$1 total fail receive times is: 0\n"
else
echo -e "$1 Total fail receive times is: $RECEIVE_FAIL\n"
fi
echo -e "--------------------------------------------\n"
if [ -z $RECEIVE_ALL ]; then
echo -e "$1 total receive times is: 0\n"
else
echo -e "$1 Total receive times is: $RECEIVE_ALL\n"
fi
echo -e "--------------------------------------------\n"
if [ -z REPEAT_SEND ]; then
echo -e "$1 total repeat_send times is: 0\n"
else
echo -e "$1 Total repeat_send times is: $REPEAT_SEND\N"
fi
#set +x
- 利用awk统计话单的案例
- 利用perl 改写awk统计
- gawk(awk)的用法案例
- 利用awk统计Linux下最常用的20条命令的shell
- linux ---awk的计算统计
- 利用netstat和awk命令来统计网络socket的状态
- awk 案例
- UNIX下用awk对话单统计日消费额
- 利用awk处理学生分数排名问题案例
- AWK统计
- awk 统计
- awk处理之案例一:awk 处理百分比的问题
- 利用XcodeCoverage统计iOS单测覆盖率
- linux的awk指令(个人案例)
- awk处理统计值的问题
- #AWK#统计不同设置值的行
- #AWK#统计总体折扣设置的情况
- 四个常用的awk统计命令
- 多线程的使用(4) - iOS多线程的三种方式
- 防止表单重复提交的几种策略
- jvm内存结构(译)
- opensuse 13.1 下gnome-terminal终端无法调出fcitx输入法问题的解决
- Oracle内连接、外连接、右外连接、全外连接小总结
- 利用awk统计话单的案例
- 个人Core Animation Programming Guide 学习笔记
- mouseover以及mouseout事件问题解决方案
- 优酷站内获取m3u8地址
- opengl glDrawElements和glDrawArray
- Tips
- JSTL标签库大全
- Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version.
- 图像分割工作总结(二)字符串