需要Shell脚本 - 我必须从appserver日志中收集时间戳

时间:2011-04-13 06:32:46

标签: shell logging

我必须从appserver日志中收集时间戳并将其存储在输出文件中。最后必须找到每个时间戳之间的差异并打印出来。例如:如果我收集了10个时间戳并保存在文件中。必须找到10日和9日之间的差异。第9和第8 ...........第2和第1时间戳。任何人都可以帮我编写shell脚本吗?

1 个答案:

答案 0 :(得分:1)

提取时间戳并转换为纪元时间:

perl -MTime::Local -ne ' 
    ($ts, $y, $m, $d, $H, $M, $S, $frac) = 
        /((\d{4})-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)\.(\d+))/;
    $time = timelocal($S, $M, $H, $d, $m-1, $y-1900) + "0.$frac";
    print $ts, ",", $time, "\n";
' log.file > output.file

根据您的输入,这将输出

2011-04-12 06:49:02.874,1302605342.874

要找到差异,您现在可以对最后一列中的时间值进行算术运算。