免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2146 | 回复: 4
打印 上一主题 下一主题

[数值计算] 请教一个问题,难受好久了,不胜感激 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-30 16:00 |只看该作者 |倒序浏览
有a、b、c等多个文件,其中单个文件内容经egrep后是这下的:
@master 20160527]$ egrep 'M_COUNT|M_DROP|M_SUCC' *
bdrserv_1_1_30349.log_0:[2016-05-27 15:58:26.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][4413]@@@@@
bdrserv_1_1_30349.log_0:[2016-05-27 15:58:26.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][2207]@@@@@
bdrserv_1_1_30349.log_0:[2016-05-27 15:58:26.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][2207]@@@@@
bdrserv_1_1_30349.log_0:[2016-05-27 15:58:28.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][10264]@@@@@
bdrserv_1_1_30349.log_0:[2016-05-27 15:58:28.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][5133]@@@@@
bdrserv_1_1_30349.log_0:[2016-05-27 15:58:28.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][5133]@@@@@
bdrserv_1_1_30349.log_0:[2016-05-27 15:58:30.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][16112]@@@@@
bdrserv_1_1_30349.log_0:[2016-05-27 15:58:30.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][8057]@@@@@
bdrserv_1_1_30349.log_0:[2016-05-27 15:58:30.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][8057]@@@@@
bdrserv_1_1_30349.log_1:[2016-05-27 15:58:32.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][21962]@@@@@
b:xdrserv_1_1_30349.log_1:[2016-05-27 15:58:32.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][10982]@@@@@
b:xdrserv_1_1_30349.log_1:[2016-05-27 15:58:32.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][10982]@@@@@
b:xdrserv_1_1_30349.log_1:[2016-05-27 15:58:34.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][27812]@@@@@
b:xdrserv_1_1_30349.log_1:[2016-05-27 15:58:34.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][13907]@@@@@
b:xdrserv_1_1_30349.log_1:[2016-05-27 15:58:34.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][13907]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:24.488] [I] 30350      @t=[139980673869568]M_IDX[0]M_COUNT[0]
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:26.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][4413]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:26.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][2207]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:26.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][2207]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:28.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][10264]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:28.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][5133]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:28.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][5133]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:30.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][16112]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:30.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][8057]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:30.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][8057]@@@@@
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:31.327] [I] 30350      @t=[139980673869568]M_IDX[0]M_COUNT[10000]
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:31.329] [I] 30350      @t=[139980673869568]M_IDX[0]M_COUNT[10000]
xdrserv_1_1_30349.log_0:[2016-05-27 15:58:31.329] [I] 30350      @t=[139980673869568]M_IDX[0]M_COUNT[10000]
xdrserv_1_1_30349.log_1:[2016-05-27 15:58:32.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][21962]@@@@@
xdrserv_1_1_30349.log_1:[2016-05-27 15:58:32.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][10982]@@@@@
xdrserv_1_1_30349.log_1:[2016-05-27 15:58:32.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][10982]@@@@@
xdrserv_1_1_30349.log_1:[2016-05-27 15:58:34.000] [I] 30350      @@@@@t=[139980673869568]M_DROP[XT99][27812]@@@@@
xdrserv_1_1_30349.log_1:[2016-05-27 15:58:34.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[CT0852][13907]@@@@@
xdrserv_1_1_30349.log_1:[2016-05-27 15:58:34.000] [I] 30350      @@@@@t=[139980673869568]M_SUCC[XT05][13907]@@@@@
--------------------------------------------------------------------------这是日志自已统计打印记录,各个XT、CT最后出现的值为当天该项统计值
egrep关键字是M_COUNT,M_DROP,M_SUCC,但是后面二级关键字的XT[2字节] CT[4字节]定长值不定(其实是有个‘,’号分隔的配置项),只需要各自最后一次出现的记录值,也就是最后的[]中的数值内容,(然后多个文件的相应XT\CT取值相加),比如file a,b,c 中M_DROP下都有XT05, 需要将XT05的值相加并输出 : a.XT05+b.XT05+c.XT05最后得到一个统计列表。
实在已超出小弟能力范围,求各位大神不吝帮助~~~救命> <!!

论坛徽章:
9
操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-17 17:50:32操作系统版块每日发帖之星
日期:2016-08-01 06:20:0015-16赛季CBA联赛之广东
日期:2016-08-01 16:01:57操作系统版块每日发帖之星
日期:2016-08-04 06:20:00IT运维版块每日发帖之星
日期:2016-08-07 06:20:00操作系统版块每日发帖之星
日期:2016-08-07 06:20:0015-16赛季CBA联赛之福建
日期:2017-03-07 17:14:27
2 [报告]
发表于 2016-05-30 16:57 |只看该作者
本帖最后由 Riet 于 2016-05-30 16:57 编辑

取最后一次XT  grep -o "XT[0-9]\{1,4\}" a | tail -1
取最后一次CT  grep -o "CT[0-9]\{1,4\}" a | tail -1

论坛徽章:
0
3 [报告]
发表于 2016-05-30 17:03 |只看该作者
回复 2# Riet
日志打印的意思是DROP标示过滤的记录,SUCC标示成功记录,COUNT为记录总数,其中过滤DROP以及SUCC两个类下面,又分两个维度,一个是XT,一个是CT,
XT01,XT02...CT0734,CT0020...,后面[]是他们的数值,我需要不同文件的最后出现的XT、CT维度的数值相加,并列表。


   

论坛徽章:
9
操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-17 17:50:32操作系统版块每日发帖之星
日期:2016-08-01 06:20:0015-16赛季CBA联赛之广东
日期:2016-08-01 16:01:57操作系统版块每日发帖之星
日期:2016-08-04 06:20:00IT运维版块每日发帖之星
日期:2016-08-07 06:20:00操作系统版块每日发帖之星
日期:2016-08-07 06:20:0015-16赛季CBA联赛之福建
日期:2017-03-07 17:14:27
4 [报告]
发表于 2016-05-30 17:07 |只看该作者
回复 3# pipi00012


    好吧我理解错了 稍微修改下我的是笨办法
取XT最后一次后面的值:grep -o "XT[0-9]\{1,4\}][^]]\+" a | grep -o "[0-9]\+$" | tail -1
取CT最后一次后面的值:grep -o "CT[0-9]\{1,4\}][^]]\+" a | grep -o "[0-9]\+$" | tail -1

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
5 [报告]
发表于 2016-05-30 17:25 |只看该作者
回复 1# pipi00012


try:
  1. awk -F '[][]' 'FNR==1{for(i in a)b[i]+=a[i];delete a}/M_COUNT/{a[$9]=$10}/M_DROP|M_SUCC/{a[$7"-"$8]=$10}END{for(i in a)b[i]+=a[i];for(i in b)print i"\t"b[i]}' *
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP