summaryrefslogtreecommitdiff
path: root/db_printlog/fileid.awk
diff options
context:
space:
mode:
Diffstat (limited to 'db_printlog/fileid.awk')
-rw-r--r--db_printlog/fileid.awk37
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);
+}