在字符串中搜索大型日志文件

时间:2015-02-10 08:49:02

标签: string perl unix grep

Hello其他程序员。 我需要一个日志文件问题的解决方案。 这是一个基于unix的环境。 HP-UX。 某个目录包含每天创建的日志文件,并根据需要附加消息和错误。 这些文件可以大到1GB的文本。 我需要找一个特定的短语。 你会怎么建议我这样做?

系统人员建议我不要使用简单的GREP,因为它会在每5分钟的搜索时段内导致高CPU使用率。

在这种情况下我该怎么办?

2 个答案:

答案 0 :(得分:0)

如果短语只在一行中,那很简单。只需逐行读取文件并测试每行的正则表达式,直到找到它为止。 类似的东西:

open(F, '<FILENAME>') or die "can't open file : $!";
while (my $line = <F>) {
    if ($line =~ /<MYREGEXP>/) {
        // regexp found
    }
}

答案 1 :(得分:0)

使用GNU parallel(请参阅the parallel grep example)将输入分组并尝试使用--jobs--load--nice选项。