我必须从appserver日志中收集时间戳并将其存储在输出文件中。最后必须找到每个时间戳之间的差异并打印出来。例如:如果我收集了10个时间戳并保存在文件中。必须找到10日和9日之间的差异。第9和第8 ...........第2和第1时间戳。任何人都可以帮我编写shell脚本吗?
答案 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
要找到差异,您现在可以对最后一列中的时间值进行算术运算。