[gull] Tronquer des fichiers log

Philippe Ney philippe at overcool.ch
Tue Jan 4 11:46:36 CET 2011


[...]
>> $ sed -i '1,'$[$(wc -l file.log | cut -d\  -f1) - 100]'d' file.log
>>
>> devrait vous permettre de conserver les 100 dernières lignes.
> 
> En effet c'est ce que j'avais à l'idée mais n'arrivais pas à le formuler.
> Bon sous Lenny ça bloque encore un peu mais pris séparément c'est bien
> ce que je recherchais.
> 
> 
> $ sed -i '1,`$[$(wc -l file.log | cut -d\  -f1) -100]`d' file.log
> sed: -e expression n°1, caractère 3: `,' inattendue
> 
> J'ai des apostrophe inversée avant le 1er $ et après ]

Bonjour,

En fait les apostrophes, c'est pour délimiter la commande que l'on
passe à sed. Mais vous pouvez les enlever (ce que je viens de vérifier
après un poste de Félix, merci Félix!). Mais il ne faut pas mettre
celles que vous avez mises.

Pour faire un traitement de plusieurs fichiers, le plus simple me
semble être de créer un script ou une fonction :

function CutMyLogs() {
  for i in $@
  do
    sed -i 1,$[$(wc -l $i | cut -d\  -f1) - 100]d $i
  done
}

Philippe		


> 
> Par contre ne marchera pas la syntaxe suivante pour traiter d'un coup
> les extensions .log
> sed -i '1,`$[$(wc -l *.log | cut -d\  -f1) -100]`d' *.log
> 
> Salutations
>   Frédéric
> _______________________________________________
> gull mailing list
> gull at forum.linux-gull.ch
> http://forum.linux-gull.ch/mailman/listinfo/gull


More information about the gull mailing list