awk
Nettoyage de fichier de logs
Pour supprimer les lignes de logs DEBUG et TRACE sur de multiples lignes, exemple :
2023/02/23 11:51:13 - /static/images/favicon.png - 127.0.0.1 - anonymous - TRACE - URL: Register pattern '|^$|' on HTTP POST with : array(4) { ["handler"]=> string(13) "default_index" ["additional_info"]=> array(0) { } ["authenticated"]=> bool(false) ["api_mode"]=> bool(false) }
awk ' BEGIN { buffer = ""; ignore = 0 } { if ($0 ~ /^[0-9]{4}\/[0-9]{2}\/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} - /) { if (length(buffer) > 0 && !ignore) { printf "%s", buffer; } buffer = $0 ORS; ignore = 0; } else { buffer = buffer $0 ORS; } if ($0 ~ / - (TRACE|DEBUG) - /) { ignore = 1; } } END { if (length(buffer) > 0 && !ignore) { printf "%s", buffer; } }' app.log > app-clean.log