PDA

Afficher la version complète : bash : pipe vers aptitude



yoplait
18/02/2009, 18h10
Bien le bonjour à tous,
Je m'amuse à me faire des p'tites lignes de script en ce moment (grâce au joli bash script de chez o'reilly récemment offert :) ).
Je bute sur un truc qui me parait tout de même assez bateau :
Le but est de purger les paquets qui ne sont que supprimés.
voilà la ligne que j'ai faite pour l'instant :

dpkg -l | grep ^rc | awk '{ print $2 }'
Cela me donne une liste des paquets juste supprimés.

Et mon but est donc d'envoyer ca à aptitude... mais la commande suivante ne donne rien à aptitude :

dpkg -l | grep ^rc | awk '{ print $2 }' | aptitude purge
Et cette commande là fait comme si je faisais juste aptitude purge et rien de plus...

Une idée ?

ps : évidemment, tout ceci sous debian lenny ;) .

yoplait
19/02/2009, 23h34
petit up ... ca m'étonne que personne ici ne sache cela ... ?? :P

wirldwind
20/02/2009, 17h08
Bonjour,

Pourquoi ne pas utiliser un for ?

Ce qui donnerait un truc du genre:

for pkgs in `dpkg -l | grep ^rc | awk '{ print $2 }'`; do
aptitude purge $pkgs
doneA noté que les "`" sont des accents graves!

Sinon, il existe une bible, l'adresse avait été mise sur Alionet en son temps, je te la refile à nouveau ;)
http://abs.traduc.org/


Salutations.

yoplait
20/02/2009, 19h03
parce qu'il va me faire un aptitude pour chacun des paquets ... ce qui est long et fastidieux je trouve...

L'idéal serait d'avoir la liste directement en argument d'aptitude pour qu'il la traite entièrement et d'un seul coup...

Merci pour la réponse quoiqu'il en soit ;) .

Chninkel
20/02/2009, 20h20
Je ne programme pas en bash mais quelque chose comme ça ne pourrait-il pas fonctionner :

for pkgs in `dpkg -l | grep ^rc | awk '{ print $2 }'`; do
liste=$liste$pkgs
done
aptitude purge $liste

yoplait
21/02/2009, 01h50
tout à fait, avec un p'tit espace sûrement ... mais en toute sincérité, c'est surtout le fait que le pipe ne marche pas pour passer les paramètres à aptitude qui m'intrigue ... c'est vraiment plus la curiosité de savoir qui me titille plus que le résultat.

Mais réellement, merci pour les idées, c'est déjà sympa de voir ca :D .

ps : d'ailleurs, ca ne marche pas non plus comme ca ... :S
vraiment bizarre !

Chninkel
22/02/2009, 23h46
Et dans l'autre sens ?

aptitude purge |dpkg -l | grep ^rc | awk '{ print $2 }'

yoplait
23/02/2009, 01h12
En voilà une idée toute bête et qui marche impeccablement !!

Voici donc la ligne de script pour purger les fichiers uniquement supprimés sur une debian :

aptitude purge `dpkg -l | grep ^rc |awk '{ print $2 }'`

Merci pour l'aide !