[gull] Tronquer des fichiers log

Félix Hauri felix at f-hauri.ch
Tue Jan 4 10:40:31 CET 2011


On Tue, Jan 04, 2011 at 10:18:30AM +0100, Philippe Ney wrote:
> [...]
> > Personne n?a une idée comment lire un fichier par la fin avec sed, car
> > je le verrais bien comme un bon candidat avec son option ?i .
> > 
> > Salutations
> >   Frédéric
> 
> Bonjour,
> 
> wc permet d'avoir le nombre de ligne du fichier, donc qqch comme :
> 
> $ sed -i '1,'$[$(wc -l file.log | cut -d\  -f1) - 100]'d' file.log
> 
> devrait vous permettre de conserver les 100 dernières lignes.
Amusant, un tail avec sed pour utiliser le ``-i'', mais tu n'as
que les 100 dernières lignes (tail -n 100) et non pas les 100 derniers Ko.

sed -e 1,$((head -c $(($(stat -c %s file.log)-100000)) file.log;echo) | wc -l)d -i file.log

Mais cela n'est pas atomique: Si le fichier est modifié entre le ``stat -c %s''
et le sed, alors le fichier fera plus de 100000 octets.

(Sans compter que tout cela reste un peu lourd)

--
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch


More information about the gull mailing list