12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/usr/bin/perl
- use Time::Local;
- my $file = shift;
- my $start = shift;
- my $stop = shift;
- sub parse_date($) {
- my $str = shift;
- if (my ($yr, $mo, $day, $hr, $min, $sec) = $str =~ /(\d{4})\-(\d{2})\-(\d{2}) (\d{2})\:(\d{2})\:(\d{2})/) {
- return timelocal($sec, $min, $hr, $day - 1, $mo - 1, $yr);
- } else {
- die $str;
- }
- }
- if ($start =~ /\:/) {
- $start = parse_date($start);
- }
- if ($stop =~ /\:/) {
- $stop = parse_date($stop);
- } elsif ($stop =~ /^\+(\d+)/) {
- $stop = $start + $1;
- }
- open(I, $file);
-
- while (<I>) {
- my $str = $_;
- $epoch = parse_date($str);
-
- if ($epoch > $start) {
- if ($stop && $epoch > $stop) {
- last;
- }
- print;
- }
- }
- close(I);
|