Hello其他程序员。 我需要一个日志文件问题的解决方案。 这是一个基于unix的环境。 HP-UX。 某个目录包含每天创建的日志文件,并根据需要附加消息和错误。 这些文件可以大到1GB的文本。 我需要找一个特定的短语。 你会怎么建议我这样做?
系统人员建议我不要使用简单的GREP,因为它会在每5分钟的搜索时段内导致高CPU使用率。
在这种情况下我该怎么办?
答案 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
选项。