diff options
Diffstat (limited to 'db_printlog/fileid.awk')
-rw-r--r-- | db_printlog/fileid.awk | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/db_printlog/fileid.awk b/db_printlog/fileid.awk new file mode 100644 index 0000000..fdad274 --- /dev/null +++ b/db_printlog/fileid.awk @@ -0,0 +1,37 @@ +# $Id$ +# +# Take a comma-separated list of file numbers and spit out all the +# log records that affect those file numbers. + +NR == 1 { + nfiles = 0 + while ((ndx = index(FILEID, ",")) != 0) { + files[nfiles] = substr(FILEID, 1, ndx - 1); + FILEID = substr(FILEID, ndx + 1, length(FILEID) - ndx); + nfiles++ + } + files[nfiles] = FILEID; +} + +/^\[/{ + if (printme == 1) { + printf("%s\n", rec); + printme = 0 + } + rec = ""; + + rec = $0 +} +/^ /{ + rec = sprintf("%s\n%s", rec, $0); +} +/fileid/{ + for (i = 0; i <= nfiles; i++) + if ($2 == files[i]) + printme = 1 +} + +END { + if (printme == 1) + printf("%s\n", rec); +} |