mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 09:06:25 +00:00
57 lines
874 B
Awk
57 lines
874 B
Awk
|
# $Id$
|
||
|
#
|
||
|
# Take a comma-separated list of page numbers and spit out all the
|
||
|
# log records that affect those page numbers.
|
||
|
|
||
|
BEGIN {
|
||
|
INDX = -1
|
||
|
}
|
||
|
NR == 1 {
|
||
|
npages = 0
|
||
|
while ((ndx = index(PGNO, ",")) != 0) {
|
||
|
pgno[npages] = substr(PGNO, 1, ndx - 1);
|
||
|
PGNO = substr(PGNO, ndx + 1, length(PGNO) - ndx);
|
||
|
npages++
|
||
|
}
|
||
|
pgno[npages] = PGNO;
|
||
|
}
|
||
|
|
||
|
/^\[/{
|
||
|
if (printme == 1) {
|
||
|
printf("%s\n", rec);
|
||
|
printme = 0
|
||
|
}
|
||
|
rec = "";
|
||
|
|
||
|
rec = $0
|
||
|
}
|
||
|
/^ /{
|
||
|
if (length(rec) + length($0) < 2040)
|
||
|
rec = sprintf("%s\n%s", rec, $0);
|
||
|
}
|
||
|
/pgno/{
|
||
|
for (i = 0; i <= npages; i++)
|
||
|
if ($2 == pgno[i])
|
||
|
printme = 1
|
||
|
}
|
||
|
/right/{
|
||
|
for (i = 0; i <= npages; i++)
|
||
|
if ($2 == pgno[i])
|
||
|
printme = 1
|
||
|
}
|
||
|
/left/{
|
||
|
for (i = 0; i <= npages; i++)
|
||
|
if ($2 == pgno[i])
|
||
|
printme = 1
|
||
|
}
|
||
|
/indx/{
|
||
|
if (printme == 1 && INDX != -1)
|
||
|
if(INDX != $2)
|
||
|
printme = 0;
|
||
|
}
|
||
|
|
||
|
END {
|
||
|
if (printme == 1)
|
||
|
printf("%s\n", rec);
|
||
|
}
|