Bonjour,
Je veux régulièrement travailler avec des boucles for,. Malheureusement je suis souvent limité par l'impossibilité dans laquelle je me trouve d'utiliser des redirections au sein des boucles for.
Par exemple, sous Gentoo je viens de récupérer les ebuilds de la beta de Xfce4.4.
Ces ebuild sont ~x86 et je suis en ~amd64. Je me dis donc que je vais, à l'aide d'un sed de derrière les fagots, modifier d'un coup d'un seul ces nombreux ebuilds.
Las, las, la redirection ne fonctionne pas :-(
voila la commande :
/tmp/ebuilds contient le chemin complet de tous les ebuilds à modifier.
for i in `cat /tmp/ebuilds `; do
cat $i | sed s/x86/amd64/g $i_ && mv $i_ $i ;
done;
Connaissez-vous le moyen d'utiliser une redirection dans une boucle ?
Vous remerciant par avance pour votre aide
# Non
Posté par Ph Husson (site web personnel) . Évalué à 4.
fait sed -ie "s/x86/amd64/g" $i et basta :p
(ou $i puis l'expression? je suis plus sur)
# curieux
Posté par fearan . Évalué à 4.
Bon c'est pas super constructif mais bon...
mais bon déja un cat de trop :P
ensuite toujours des "" autour des variables et "${i}" c'est encore mieux
for i in $( cat /tmp/ebuilds)
do
sed -e "s/x86/amd64/g;w plop" "$i" && mv plop "$i"
done
éviterai de fair partie ce ceux qui utilisent cat pour rien
et tu éviterais d'utiliser les redirections qui foirent chez toi.
ps : le $( ) fait comme un `` mais tellement plus pratique a imbriquer
pps c'est du bash
ppps pour faire marcher ton script :
i_=plop
au début... car $i_ je ne suis pas sur que ca existe
$>a=1
$>echo $a_
alors que
$>a=1
$>echo ${a}_
1_
donc toujours les {} :P ( sauf pour moi )
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.