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])

関連情報