1

我有几千个日志文件,其中包含标记某些重要事件的日期时间戳。不幸的是,在任何给定的日期时间戳记录的信息有时会插入换行符,因此信息会分布在多行中。此外,还有其他与我的目的无关且没有日期时间戳的信息。

我有一个 perl one-liner 可以提取我想要的信息:

perl -ne 'print if /^\d\d:\d\d:\d\d\.\d\d\d/..!/^\d\d:\d\d:\d\d\.\d\d\d/'

但是,我想删除初始行(包含日期时间戳)和以下每一行之后的新行字符。但是,我确实希望在以日期时间戳开头的下一行之前的最后一行之后保留换行符。

我对如何修改我的单线来实现这一点没有任何运气。

4

1 回答 1

1
perl -ne 'if ($inside = /^\d\d:\d\d:\d\d\.\d\d\d/..!/^\d\d:\d\d:\d\d\.\d\d\d/) {
            chomp unless $inside =~ /E0$/;
            print; }'
于 2012-05-25T16:12:28.920 回答