免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1594 | 回复: 4
打印 上一主题 下一主题

shell正则,求匹配 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-20 10:26 |只看该作者 |倒序浏览
本帖最后由 General_1989 于 2012-06-20 17:23 编辑

这是整理的SQl日志文件 sql.log

#120618 13:07:48
SET INSERT_ID=104
#120618 13:07:48
INSERT INTO `search`
(上面四行是固定格式)
#120618 13:07:49
UPDATE `book`
#120618 13:07:49
UPDATE `book`
#120618 13:07:48
SET INSERT_ID=104
#120618 13:07:48
INSERT INTO `search`


所以我要把跟某表有关的sql全部打出来,即 search表的sql都在一个文件中,book表的sql都在另一个文件中。类似于如下:

saerch的文件:
#120618 13:07:48
SET INSERT_ID=104
#120618 13:07:48
INSERT INTO `search`
#120618 13:07:49
UPDATE `search`。。。。。。



book的也一样


求正则良方啊~~~因为INSERT和UPDATE的顺序很重要,所以一时不知如何写~

这就是mysql的日志嘛,我就是要把不同表的sql匹配出来

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
2 [报告]
发表于 2012-06-20 11:17 |只看该作者
  1. awk -v RS="\n^#" '/search/{print "#" $0 > "search.log" }/book/{print "#" $0> "book.log" }' sql.log
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-06-20 13:08 |只看该作者
本帖最后由 General_1989 于 2012-06-20 17:21 编辑

回复 2# rdcwayx


    版主老大。。。。差点了,不对啊~~~

INSERT的上面很多都会有
SET INSERT_ID=104
这句

你的貌似漏了

论坛徽章:
0
4 [报告]
发表于 2012-06-20 16:28 |只看该作者
看了半天没看懂你的需求
我理解的是这样的  你要将sql.log文件中包含 search 和 book 内容分别写到 search.log 和 book.log 两个文件当中
如果是这样,就很简单了
grep "\`search\`" sql.log >> search.sql
grep "\`book\`" sql.log >> book.sql

论坛徽章:
0
5 [报告]
发表于 2012-06-20 17:20 |只看该作者
回复 4# imaoxian

文件里的格式都是上面那样的


再看看我精简了点
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP