[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