我想将上述日期添加到 prstat 日志文件的每一行

我想将上述日期添加到 prstat 日志文件的每一行

我有一个 prstat 日志,正如你们都知道的,日期和时间记录在日志文件的顶部,我想将该日期和时间添加到每行的开头,直到它达到新的日期,然后我会对日志的该部分执行相同的操作。

这可能吗?有没有办法通过命令或脚本来执行此操作,我会创建一个脚本来执行此操作,但为时已晚,因为数据已经收集完毕。

答案1

假设日期格式为 yyyy-mm-dd hh:mi:ss 你可以使用这个 perl 脚本:

#!/usr/bin/perl -w

open(FILEH,"<","your.log") or die "cannot open file";
my $date = "0000-00-00 00:00:00";

while(<FILEH>) {
    if( /^([A-Z][a-z]{2}\s[A-Z][a-z]{2}\s[0-9]+\s[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\s[0-9]{4})$/ ) {
        $date = $1;
    }
    else {
        print "$date $_";
    }
}

将 your.log 更改为日志文件的完整路径。

答案2

我不太了解 python,但我尝试过

#!/usr/bin/env python

Each_line = [line.split() for line in open('/tmp/prstat.log')]

for n in xrange(len(Each_line)):
    if '2008' in Each_line[n]:
         print " ".join(Each_line[n])," ".join(Each_line[n+1])

相关内容