X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fgrepdbg;h=3d1526f8d70b93446548ee9257ce7b0c87349484;hb=refs%2Fheads%2Fip_address;hp=5b95c6338565327e61b04d312cb9d58618eecd60;hpb=b08d8e083dd9762d205f68ada2bf56bd0a8acd90;p=spider.git diff --git a/perl/grepdbg b/perl/grepdbg index 5b95c633..3d1526f8 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 # # @@ -26,13 +32,14 @@ BEGIN { 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; @@ -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>) { @@ -62,10 +69,9 @@ for my $entry (@list) { shift @prev while @prev > $nolines; if ($line =~ m{$string}io) { for (@prev) { - $line =~ s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg; - my @line = split '\^'; - my $t = shift @line; - print atime($t), ' ', join('^', @line), "\n"; + s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg; + my ($t, $l) = split /\^/, $_, 2; + print atime($t), ' ', $l, "\n"; } @prev = (); }