# Program to do a grep with dates and times on the debug
# files
#
-# dispdbg [-nnn ...] <string>
+# grepdbg [nn] [-mm] <regular expression>
#
-# the -nnn is the day you what to look at -1 is yesterday -0 is today
+
+# nn - is the day you what to look at: 1 is yesterday, 0 is today
# and is optional if there is only one argument
-# <string> is the string, a caseless search is done
+#
+# -mmm - print the mmm lines before the match. So -10 will print
+# ten lines including the line matching the regular expression.
+#
+# <regexp> is the regular expression you are searching for,
+# a caseless search is done
#
#
use DXVars;
use DXUtil;
use DXLog;
+use Julian;
use strict;
-use vars qw(@list $fp @today $string);
+use vars qw(@list $fp $today $string);
$fp = DXLog::new('debug', 'dat', 'd');
-@today = Julian::unixtoj(time());
+$today = $fp->unixtoj(time());
my $nolines = 1;
my @prev;
push @list, "0" unless @list;
for my $entry (@list) {
- my @now = Julian::sub(@today, $entry);
- my $fh = $fp->open(@now);
+ my $now = $today->sub($entry);
+ my $fh = $fp->open($now);
my $line;
if ($fh) {
while (<$fh>) {
if ($line =~ m{$string}io) {
for (@prev) {
s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg;
- my ($t, $l) = split /\^/, $line, 2;
+ my ($t, $l) = split /\^/, $_, 2;
print atime($t), ' ', $l, "\n";
}
@prev = ();