Re: apt a la mémoire longue
Julien Valroff a écrit, vendredi 29 avril 2005, à 19:29 :
> Le vendredi 29 avril 2005 à 18:54 +0200, Jacques L'helgoualc'h a écrit :
> > [script sed]
>
> J'avais trouvé dans le même genre ;-)
> Mon script supprime les _paragraphes_ contenant la ligne "Status: purge
> ok not-installed", un paragraphe étant déterminé par 2 lignes vides :
Pas exactement, le premier Package: apparaît ligne n°1 chez moi. Je
suppose qu'un paragraphe commence par une telle ligne, et finit par une
ligne vide (j'ai bien une dernière ligne vide) ; seuls les paragraphes
de quatre lignes conformes au modèle sont effacés.
> #!/bin/bash
> cd /var/lib/dpkg/
> cp status status.backup
> sed -e '/./{H;$!d;}' -e 'x;/Status: purge ok not-installed/d;' \
> status > status.new
- tu effaces aussi un paragraphe qui contiendrait cette chaîne dans la
description (peu plausible :) ;
- une dernière ligne non vide serait perdue.
sed -e ':a;N;/\n$/!{$!b a};/\nStatus: purge ok not-installed\n/d' \
status > status.new
> sed -e '/./,$!d' status.new > status
Des lignes vides au début ne sont pas gênantes ici --- mais on peut
regrouper cette commande en tête du sed précédent.
> rm -f status.new
>
> echo "Script exited with code $?."
>
> Après exécution, le poids de mon fichier status a été réduit de 20ko
> (soit environ 3% de son poids), donc le gain n'est pas vraiment celui
> que j'aurais pu espérer...
Chez moi© c'est rentable ;)
$ grep -c '^Package:' status_bref /tmp/supprimes /var/lib/dpkg/status
status_bref:1036
/tmp/supprimes:8245
/var/lib/dpkg/status:9281
> Merci à tous pour votre aide !
Merci à toi aussi,
--
Jacques L'helgoualc'h
Reply to: