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