我已經打開了 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根據他的喜好進行修改)可以在評論中找到。