【问题标题】:Faster alternative to egrep in shell scripting or Perl在 shell 脚本或 Perl 中更快地替代 egrep
【发布时间】:2013-06-03 13:25:47
【问题描述】:

$logFile 大小为 20GB

$RAW_FILTER=pattern1|pattern2|pattern3|pattern4|pattern5|....upto Pattern M
$RAW_FILTER1=pattern6|pattern7|pattern8|pattern9|pattern10|...upto Pattern N

我的代码如下:

cat $logFile | egrep "$RAW_FILTER" >> $filesNeedToCheck &
cat $logFile | egrep "$RAW_FILTER1" >> $filesNeedToCheck &

等待

还有其他更快的选择吗? 非常感谢任何帮助。

【问题讨论】:

  • 根据创建日志文件的服务器上的负载,您是否可以尾随 -f 日志并将其通过管道传输到 egrep 以便在写入原始日志文件时“实时”创建 $filesNeedToCheck?
  • 我无法实时挖掘日志。所以 tail 对我来说不是一个选择。
  • 提高速度的一个想法是放弃Useless Use of Cat。它看起来非常低效。另一个想法是实际显示您正在使用的正则表达式,以便我们查看它们是否效率低下。
  • 不是内存而是multiple file read/seeks 并行运行时,可能由于存储速度限制,处理速度会更慢。

标签: perl shell grep


【解决方案1】:

如果它是一个日志文件,也许你可以将它分成更小的块并在子进程中运行 greps?

【讨论】:

    猜你喜欢
    • 2020-10-05
    • 2023-03-16
    • 1970-01-01
    • 2020-04-29
    • 2017-01-27
    • 2010-12-14
    • 2017-10-26
    • 1970-01-01
    • 2015-10-15
    相关资源
    最近更新 更多