perl里面有类似zgrep的命令吗

perl里面有类似zgrep的命令吗

linux下:

zgrep keyword /var/log/maillog.1.gz

perl里面怎么才能实现呢,直接对.gz的文件进行检索。
先解压,然后再应用 grep
先解压,再grep,这样效率也太低了点吧,我要处理的是compress的日志文件,都有接近1G的大小。

3个办法:
1、解压再grep  ---这个最蠢
2、使用 `zcat  xxx.gz`再匹配 或者是楼主提到的zgrep ----外部命令,有些性能或者案例隐患,也不一定每个系统都有和都安装了类似命令
2、我一般使用这个模块PerlIO::gzip  ----perl原生,好进行处理,速度也不赖

如果还有更高的办法,请高手讲讲



QUOTE:
原帖由 xmbbx 于 2008-10-14 14:50 发表
先解压,再grep,这样效率也太低了点吧,我要处理的是compress的日志文件,都有接近1G的大小。

那你就变通下,一边解压一边处理。实际上还是先解压后处理。


QUOTE:
原帖由 xmbbx 于 2008-10-14 14:50 发表
先解压,再grep,这样效率也太低了点吧,我要处理的是compress的日志文件,都有接近1G的大小。

zgrep实际上也是先解压再处理的, 它不过是个shell脚本
用PerlIO::gzip模块如果你代码质量好的话程序性能绝对在zgrep之上
落叶季节,思念季节
问题不在解压的时间,无论如何,文件都需要解压缩.我感觉,硬盘是制约速度的最大瓶颈。