任何用于重复搜索和提取文件内容的Perl模块?

时间:2011-11-13 20:47:12

标签: perl

我需要解析一些日志文件,其中数据以特定模式重复。我需要在数据中搜索特定的“关键字”,然后从下一行中提取数据。我需要为整个文件继续这个。 我知道这可以使用基本的perl脚本来完成。但是,我们是否有任何perl模块可以简化这种功能?

3 个答案:

答案 0 :(得分:1)

可能没有这样的模块,因为代码非常简单,而OTOH 的细节特定于问题

我多次遇到过类似的问题。输入类似于:

Date: 2011-11-10
<an interesting line>
<another interesting line>
Date: 2011-11-11
<more interesting lines>

我需要提取所有“有趣的线条”,同时知道每个的有趣日期。我认为oneliners或short throwaway脚本已经非常成功。对于oneliner,熟悉-l-a等有用的东西是件好事。 perl -wlane '...'这是我写了一千遍的东西。

答案 1 :(得分:0)

您可以查看cgrep,这是此类处理的一个示例。它可以用在管道中,即

cat mylog | cgrep -w0:1 'regexp' | grep -v 'regexp' | sed 's/.../.../'

换句话说,grep用于regexp,在匹配前输出0行,然后输出一行,然后删除原始匹配,并格式化结果。你可能不想在最后一步使用sed,这只是一个例子。

cgrep出现在Programming Perl(Camel)书的最早版本中。 It's pretty easy to find

答案 2 :(得分:0)

感谢您提出其他选择。 实际上我发现使用'touch-flop'操作符和'if'非常恰当地解决了我的问题。在使用了这个之后,我才意识到,要求一个“模块”来完成这样一个微不足道的任务太多了。)。