有木有更快的处理办法了!!!
时间:2011-07-08
来源:互联网
我的日志文件格式大体是这样的:
00:00:01 [cmd:ACCEPT,tid:UMCowKALITMBNRNOk+xwAA--.488S0,ip:204.74.212.204......
00:00:02 [cmd:MAIL,tid:UMCowKALITMBNRNOk+xwAA--.488S2,ip:204.74.212.204......
00:00:02 [cmd:RCPT,tid:UMCowKALITMBNRNOk+xwAA--.488S2,ip:204.74.212.204......
日志文件大小为2个G左右,压缩后为400多M,格式为xxx.gz
目的:想统计这个日志文件ACCEPT的会话数
命令实现: zcat xxx.gz|wc -l 大概是21秒左右
perl实现:大概是在19秒左右
- #! /usr/bin/perl
- use warnings;
- use strict;
-
- my $count;
- my $file = 'xxx.gz';
- open FH,"gzip -dc $file|" or die "Can't open $file:$!\n";
- while (<FH>) {
- $count ++ if (/ACCEPT/);
- }
- print $count."\n";
作者: xxhacker 发布时间: 2011-07-08
- while (<FH>) {
- $count++ if (substr($_,14,1) eq 'A');
- }
作者: x9x9 发布时间: 2011-07-08
作者: iamlimeng 发布时间: 2011-07-08
作者: xxhacker 发布时间: 2011-07-08
- /^\d{2}:\d{2}:\d{2}\s+\[cmd:ACCEPT/
作者: wxlfh 发布时间: 2011-07-08
测了一下,20秒左右,难道已经是极限了???
作者: xxhacker 发布时间: 2011-07-08
$/="ACCEPT";
$count++ while(<FH>);
or use C language
作者: jason680 发布时间: 2011-07-08
测试了一下,23秒,看来要获得更快的处理速度,只能把改写代码为C了,可惜我C不熟

作者: xxhacker 发布时间: 2011-07-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28