如何删除linux日志中的重复条目

如何删除linux日志中的重复条目

我已经打开了 mysql 常规日志,并且记录了上周发生的每笔事务。我还有一个 cronjob 每 5 分钟运行一次,执行一些 mysql 事务,这会污染我的日志。我想知道如何从日志中删除这些条目,以便它看起来更干净。

cron 中的重复条目如下所示:

160614 16:45:01    36 Connect   user@localhost on 
                   36 Init DB   db1
                   36 Query     SELECT FROM status_history as sh INNER JOIN (SELECT work_order_i
d, MAX(status_changed) AS MaxDateTime FROM status_history GROUP BY work_order_id) as groupedsh ON sh.work_order_id = groupedsh.work_o

                            JOIN rchetype_work_order_views AS wov ON wo.id = wov.work_order_id
                                WHERE wov.viewed = 0 AND sh.status_id IN (SELECT status_id FROM rchetype_status_completed)
                   36 Quit

我正在考虑使用 sed 但问题是他的第一行显然有不同的日期和不同的事务号(在本例中为 36),我想删除所有行,直到它在最后找到第一个 Quit 。所以我想知道是否有办法做到这一点。我只是在寻找想法。

答案1

假设它们的行数始终相同,您可以执行以下操作:这将从当前目录中的文件“log.file”中
sed '/Connect\s*user@localhost on/,+7d' log.file 删除包含以下 7 行的行。Connect user@localhost on

编辑:最终的解决方案(好吧,至少足以让OP根据他的喜好进行修改)可以在评论中找到。

相关内容