在awk中使用OR

时间:2009-09-23 10:01:22

标签: shell awk

我使用以下两个命令从binlogs中查看我的表。

mysqlbinlog mysql-bin.000016 | awk '/session/,/;/' | more

mysqlbinlog mysql-bin.000016 | awk '/session_log/,/;/' | more

如何在单个语句中看到两个表格行?

2 个答案:

答案 0 :(得分:1)

我认为你需要的是:

mysqlbinlog mysql-bin.000016 | awk '/session(_log)?/,/;/' | more

使用'?'显示'_log'是选项,无论有没有。

答案 1 :(得分:1)

要对输出进行分组,请执行以下操作:

mysqlbinlog mysql-bin.000016 | awk '
   !m { if (match($0, /(name1|name2|name3|name4|name5)/)
           m=substr($0,RSTART,RLENGTH)
      }
  /;/ { m = "" }
    m { array[m] = array[m] "\n" $0 }
  END { for (m in array) print array[m] }'