从mysql慢日志中为特定输出制作脚本

时间:2016-12-05 11:21:37

标签: awk sed grep

我想从文件中选择单词并将其他行复制到下一个#。

意味着我有如下所示的mysql慢查询。从中我想选择当前的日期时间查询,直到下一个#。

请指导相同的内容。

# Time: **161205 10:27:39**
# localhost []
# Query_time: 5.517501  Lock_time: 0.034388 Rows_sent: 50  Rows_examined: 27061434
SET timestamp=1480913859;
SELECT   ,NULL,NULL,(SELECT
                    GROUP_CONCAT(project_master_name)
                FROM
                    project_inquiry_detail pid,project_master pm
                WHERE
                order by T.InquiryDate desc , TL.rowid desc limit 0,50;
**# Time: 161205 14:53:50**

2 个答案:

答案 0 :(得分:0)

这就是你要找的东西吗?

sed -n -r -e  '/^SELECT /p; /^(SELECT |#)/!{p};' mysql.log

答案 1 :(得分:0)

这个适用于我

sed -n -r '/^SELECT/,/^#/p' slow.log

逻辑只是“不打印任何东西,除非被告知”#34; (-n开关)并且只打印开头的SELECT和行开头的#之间的行(包括)。