====== 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