X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fgrepdbg;h=ebf581bd50a5b33d745229ebabd6a3523df3b6f9;hb=8d4360134b5a83741dbd77ef99a56c2f1c40db05;hp=a14bf3011d36489004359304b320af3b4baf73f4;hpb=ce732002f6913bef502e168460ea3cc688fa3d8b;p=spider.git diff --git a/perl/grepdbg b/perl/grepdbg index a14bf301..ebf581bd 100755 --- a/perl/grepdbg +++ b/perl/grepdbg @@ -3,11 +3,17 @@ # Program to do a grep with dates and times on the debug # files # -# dispdbg [-nnn ...] +# grepdbg [nn] [-mm] # -# 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 -# 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. +# +# is the regular expression you are searching for, +# a caseless search is done # # @@ -23,16 +29,17 @@ BEGIN { unshift @INC, "$root/local"; } -use DXVars; +use SysVar; 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; @@ -51,8 +58,8 @@ die "usage: grepdbg [nn] [[-nnn] ..] \n" unless $string; 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>) { @@ -63,9 +70,8 @@ for my $entry (@list) { if ($line =~ m{$string}io) { for (@prev) { s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg; - my @line = split '\^'; - my $t = shift @line; - print atime($t), ' ', join('^', @line), "\n"; + my ($t, $l) = split /\^/, $_, 2; + print atime($t), ' ', $l, "\n"; } @prev = (); }