dbname.awk
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. # $Id: dbname.awk,v 1.2 2000/08/03 15:06:39 ubell Exp $
  2. #
  3. # Take a comma-separated list of database names and spit out all the
  4. # log records that affect those databases.
  5. NR == 1 {
  6. nfiles = 0
  7. while ((ndx = index(DBNAME, ",")) != 0) {
  8. filenames[nfiles] = substr(DBNAME, 1, ndx - 1) 0;
  9. DBNAME = substr(DBNAME, ndx + 1, length(DBNAME) - ndx);
  10. files[nfiles] = -1
  11. nfiles++
  12. }
  13. filenames[nfiles] = DBNAME 0;
  14. files[nfiles] = -1
  15. myfile = -1;
  16. }
  17. /^[.*log_register/ {
  18. register = 1;
  19. }
  20. /opcode:/ {
  21. if (register == 1) {
  22. if ($2 == 1)
  23. register = 3;
  24. else
  25. register = $2;
  26. }
  27. }
  28. /name:/ {
  29. if (register >= 2) {
  30. for (i = 0; i <= nfiles; i++) {
  31. if ($2 == filenames[i]) {
  32. if (register == 2) {
  33. printme = 0;
  34. myfile = -1;
  35. files[i] = -1;
  36. } else {
  37. myfile = i;
  38. }
  39. break;
  40. }
  41. }
  42. }
  43. register = 0;
  44. }
  45. /fileid:/{
  46. if (myfile != -1) {
  47. files[myfile] = $2;
  48. printme = 1;
  49. register = 0;
  50. myfile = -1;
  51. } else
  52. for (i = 0; i <= nfiles; i++)
  53. if ($2 == files[i]) {
  54. printme = 1
  55. break;
  56. }
  57. }
  58. /^[/{
  59. if (printme == 1) {
  60. printf("%sn", rec);
  61. printme = 0
  62. }
  63. rec = "";
  64. rec = $0
  65. }
  66. /^ /{
  67. rec = sprintf("%sn%s", rec, $0);
  68. }
  69. END {
  70. if (printme == 1)
  71. printf("%sn", rec);
  72. }