这是一个简单的Perl脚本,它遍历文件并打印每个行,其时间戳在执行开始时的5分钟内.为了提高效率,并假设行是按时间戳顺序排列的,您可以修改它以在遇到第一个可打印行时设置布尔标志并从该点开始跳过测试.
#!/usr/bin/perl
use POSIX qw(mktime);
$now = time();
while(<>)
{
($yy,$mm,$dd,$h,$m,$s,$t) = /^(\d+)-(\d+)-(\d+)\s+(\d+):(\d+):(\d+),(\d+)/;
$t = mktime($s+$t/1000, $m, $h, $dd, $mm-1, $yy-1900);
print "$_" if ($t >= $now-300);
}
Run Code Online (Sandbox Code Playgroud)