Re: script de nettoyage d'une arborescence
Christophe Raverdy <adresse@fai.tld.invalid> écrit :
> Bonjour.
'lu
> tar czvf faq.tgz faq/
> REP=`ls -1R faq`
> for FICHIER in $REP
for i in $REP/**/ ;
me parait être un poil mieux que de forker le ls, si le shell le
permet. Sinon, un find :
find $REP -type f -exec sed... ';'
> sed -e '/^X-No-Productlink:'/d $FICHIER > $FICHIER
Tu ne peux pas faire ça. Il y a une chance sur deux que le shell
écrase le fichier $FICHIER avant que sed ne l'ouvre. Donc sed ne verra
qu'un fichier vide. Le mieux est d'utiliser l'option -i (inplace) de
sed pour éviter ce problème.
> bonus track (mais je suis prêt à chercher) : comment faire pour virer de
> la liste les fichiers dont le nom se termine par ".old" ? je suppose que
> je dois passer par les expressions régulières, et (éventuellement ?)
> par find.
Au lieu de lancer le sed, tu fais qqchose du genre (c'est pas du
code, c'est de l'algo, j'ai la flemme de faire du vrai code) :
if (nom != '*.old)
sed
fi
Si tu utilises find, tu peux faire (pas testé) :
find $REP -type f -not -name '*.old' -exec sed... ';'
> Par avance, merci pour vos éclaircissements et liens pertinents.
Ah mais de rien, HTH
|