X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=perl%2Fgrepdbg;h=35c9a748ba9d4da025e339698d3eb2921e17f00c;hb=b130a82bd2ea2a977e347c64c26c605931d0b9d2;hp=c44fc92b85c3a08f2565ef95e73f91a82886a1ca;hpb=9da1742219a27b1c02fd57794412088e4d7b3d1d;p=spider.git diff --git a/perl/grepdbg b/perl/grepdbg index c44fc92b..35c9a748 100755 --- a/perl/grepdbg +++ b/perl/grepdbg @@ -33,17 +33,21 @@ use vars qw(@list $fp @today $string); $fp = DXLog::new('debug', 'dat', 'd'); @today = Julian::unixtoj(time()); +my $nolines = 1; +my @prev; for my $arg (@ARGV) { if ($arg =~ /^-/) { $arg =~ s/^-//o; push @list, $arg; + } elsif ($arg =~ /^\d+$/) { + $nolines = $arg; } else { $string = $arg; last; } } -die "usage: dispdbg [[-nnn] ..] \n" unless $string; +die "usage: grepdbg [nn] [[-nnn] ..] \n" unless $string; push @list, "0" unless @list; for my $entry (@list) { @@ -54,10 +58,15 @@ for my $entry (@list) { while (<$fh>) { my $line = $_; chomp $line; - if ($line =~ m{\Q$string}io) { - my @line = split '\^', $line; - my $t = shift @line; - print atime($t), ' ', join('^', @line), "\n"; + push @prev, $line; + shift @prev while @prev > $nolines; + if ($line =~ m{$string}io) { + for (@prev) { + my @line = split '\^'; + my $t = shift @line; + print atime($t), ' ', join('^', @line), "\n"; + } + @prev = (); } } $fp->close();