Como posso remover entradas duplicadas no log do Linux

Como posso remover entradas duplicadas no log do Linux

Ativei o logon geral do mysql e registrei todas as transações que ocorreram na última semana. Eu também tenho um cronjob rodando a cada 5 minutos fazendo algumas transações mysql que estão poluindo meu log. Gostaria de saber como posso remover essas entradas do meu log para que fique mais limpo.

As entradas repetitivas do cron são assim:

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

Eu estava pensando em usar sed mas o problema é que a primeira linha obviamente terá uma data diferente e um número de transação diferente (neste caso 36) e eu gostaria de deletar todas as linhas até encontrar o primeiro Quit no final. Então, eu queria saber se existe uma maneira de fazer isso. Estou apenas procurando ideias.

Responder1

Supondo que eles tenham sempre a mesma quantidade de linhas, você poderia fazer algo assim:
sed '/Connect\s*user@localhost on/,+7d' log.file Isso removerá a linha que contém Connect user@localhost onas 7 linhas seguintes do arquivo "log.file" em seu diretório atual.

Editar: a solução final (bem, pelo menos boa o suficiente para o OP alterar ao seu gosto) pode ser encontrada nos comentários.

informação relacionada