[gull] Truc et astuces: Debian apt: supprimer les paquets installé aujourd'hui
Félix Hauri
felix at f-hauri.ch
Mon Dec 3 11:22:49 CET 2012
Voici comment j'ai supprimée des paquets que j'ai installé, ce matin:
# apt-get --purge remove $(
sed -ne < /var/log/apt/history.log "1,/^Start-Date: $(date +%F)"'/d;
s/^Install: //;ta;bb;:a;s/:[^,(]*([^)]*)\($\|,\)//;ta;H;:b;
${g;s/\n/ /g;p }')
(Au passage, si l'un de vous, lecteur assidu des manpages connait un
moyen plus simple, je suis prenneur ;-)
Explications?
- sed ouvre le fichier de logs de apt
- les lignes, de la première (1) à la première correspondant à
/^Start-Date: 2012-12-03/ sont ignorées pour la suite
- les lignes commençant par /^Install: / sont modifiées:
la chaine est supprimée.
- tX; -> branchement conditionnel, *si* le précédent s/// à
trouvé et remplacé qqch. (X == a: on ``saute à a'')
- bX; -> branchement inconditionnel: on saute à ``b'' (sinon).
- :X; -> label: un précédent ou futur ``bX'' ou ``tX'' amènera
ici, s'il a lieu,
- suppression des ``:arch (vnum, automatic)''
- boucle pour supprimer *toutes* les occurence de arch...vnum
- H; stockage du résultat pour impresssion groupée
- ${} opération à faire sur la dernière ligne
- g; récupérer les lignes stoquées (et supprimer la ligne courante)
- s/\n/ /g; remplacer les sauts de lignes par des espaces
- p; print
sed est très utile!
--
Félix
More information about the gull
mailing list