【发布时间】:2010-11-02 14:44:07
【问题描述】:
我有一个文本文件(基本上是带有日期、时间戳和一些数据的错误日志),格式如下:
mm/dd/yy 12:00:00:0001
This is line 1
This is line 2
mm/dd/yy 12:00:00:0004
This is line 3
This is line 4
This is line 5
mm/dd/yy 12:00:00:0004
This is line 6
This is line 7
我是 Perl 的新手,需要编写一个脚本来搜索文件中的时间戳并合并其中具有相同时间戳的数据。
我期待上述示例的以下输出。
mm/dd/yy 12:00:00:0001
This is line 1
This is line 2
mm/dd/yy 12:00:00:0004
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
完成这项工作的最佳方法是什么?
【问题讨论】:
-
来自非 Perlish 人:在我看来,您可以遍历每一行,并测试它是否与您的时间戳正则表达式匹配。如果是这样,你保存它;如果它与上次保存的时间戳相同,则将其删除。
-
是否会对时间戳进行排序,或者换句话说,时间戳A是否会在不同的时间戳B之后再次出现?
-
如果是错误日志,我假设时间戳是有序的。除非你的错误是时空连续体中的一个洞。
-
@mmyers:不要假设太多。大文件可能是来自不同服务器的日志文件的串联。在每个部分中,时间戳都是排序的,但不是跨文件排序的。这只是我以前见过的一个案例。 ;)
-
啊哈。还好我当时没有写答案。