Chinaunix

标题: perl如何从日志文件中提取一段内容? [打印本页]

作者: 怒剑狂啸    时间: 2005-04-12 16:39
标题: perl如何从日志文件中提取一段内容?
假设有个很大的日志文件,比如时间是从2004-1-1到2005-1-1。我想从中获得一段(假设从2004-5-1到2004-6-1)进行分析,常规处理方法是一行一行读取,然后一个一个进行时间比较,但是这样效率不高。想优化一下,用二分法来进行查找,就是先在中间找一点进行比较,然后再折半计算,但是有个问题,就是文件读取时怎样进行精确的定位呢?如果要知道文件有多少行,得先从头读到尾,然后才能知道有多少行,进行比较的时候还要从头再读一遍,不知道有没有什么好办法可以进行定位?
利用数据库处理可能要方便多了,如果不导入数据库该怎样优化呢?不知各位遇到这样的问题是如何处理的!
作者: apile    时间: 2005-04-12 16:46
标题: perl如何从日志文件中提取一段内容?
先用cat xxx.log |grep  -e "2004-5"  "2004-6"|xxx.pl
這樣子就可以抓到5、6月的資料..
不需要用perl一行一行去parsing..
只是效能不敢保證..
作者: 怒剑狂啸    时间: 2005-04-12 16:56
标题: perl如何从日志文件中提取一段内容?
我这里只是一个例子,实际可能有所变化,比如可能是06/Dec/2004:09:08:43  到06/Dec/2004:10:09:43,当然我这里的时间段是作为运行参数出现的,可变的,该如何做效率才能高呢?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2