Logs

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

  • December 13, 2012

我有一個 prstat 日誌,大家都知道日期和時間記錄在日誌文件的頂部,我想將該日期和時間添加到每一行的乞求中,直到它到達一個新的日期,然後我會對日誌的那部分執行相同的操作。

這可能嗎?,有沒有辦法通過命令或腳本來做到這一點,我會創建一個腳本來做到這一點,但為時已晚,因為已經收集了數據。

假設日期格式是 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。

我不太了解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])

引用自:https://unix.stackexchange.com/questions/58369