projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add command
[spider.git]
/
perl
/
grepdbg
diff --git
a/perl/grepdbg
b/perl/grepdbg
index a59ea742340b5f121cd5a9352d226b5e8b873514..3d1526f8d70b93446548ee9257ce7b0c87349484 100755
(executable)
--- a/
perl/grepdbg
+++ b/
perl/grepdbg
@@
-3,11
+3,17
@@
# Program to do a grep with dates and times on the debug
# files
#
# 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
# 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
#
#
#
#
@@
-26,13
+32,14
@@
BEGIN {
use DXVars;
use DXUtil;
use DXLog;
use DXVars;
use DXUtil;
use DXLog;
+use Julian;
use strict;
use strict;
-use vars qw(@list $fp
@
today $string);
+use vars qw(@list $fp
$
today $string);
$fp = DXLog::new('debug', 'dat', 'd');
$fp = DXLog::new('debug', 'dat', 'd');
-
@today = Julian::
unixtoj(time());
+
$today = $fp->
unixtoj(time());
my $nolines = 1;
my @prev;
my $nolines = 1;
my @prev;
@@
-51,8
+58,8
@@
die "usage: grepdbg [nn] [[-nnn] ..] <regexp>\n" unless $string;
push @list, "0" unless @list;
for my $entry (@list) {
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>) {
my $line;
if ($fh) {
while (<$fh>) {
@@
-62,10
+69,11
@@
for my $entry (@list) {
shift @prev while @prev > $nolines;
if ($line =~ m{$string}io) {
for (@prev) {
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";
+ s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg;
+ my
($t, $l) = split /\^/, $_, 2
;
+ print atime($t), ' ',
$l
, "\n";
}
}
+ @prev = ();
}
}
$fp->close();
}
}
$fp->close();