Je trace un file journal en utilisant la tail -f messages.log
et cela fait partie de la sortie:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eget tellus sit amet odio porttitor rhoncus. Donec consequat diam sit amet tellus viverra pellentesque. tail: messages.log: file truncated Suspendisse at risus id neque pharetra finibus in facilisis ipsum.
Il affiche tail: messages.log: file truncated
lorsque le file est tronqué automatiquement et c'est censé se produire, mais je veux juste que la tail
me montre la sortie sans ce message tronqué.
J'ai essayé d'utiliser tail -f messages.log | grep -v truncated
tail -f messages.log | grep -v truncated
mais il me montre le message de toute façon.
Y a-t-il une méthode pour supprimer ce message?
Ce message est sorti sur stderr comme tous les messages d'avertissement et d'erreur.
Vous pouvez soit supprimer toutes les sorties d'erreur:
tail -f file 2> /dev/null
Ou pour filterr uniquement les messages d'erreur contenant truncate
:
(tail -f file 2>&1 >&3 3>&- | grep -v truncated >&2 3>&-) 3>&1
Ou avec zsh
ou bash
:
tail -f file 2> >(grep -v truncated >&2)
Si grep
ne se débarrasse pas de la sortie, il est probablement imprimé sur une erreur standard. Le moyen le plus simple de se débarrasser de cela est simplement de le vider:
tail -f messages.log 2>/dev/null
Peut-être aider si peut être l'origine des corrections de cette erreur. C'est arrivé parce que quelque chose écrit dans un file avec écrasement ">" pas avec append ">>".