Afficher un message
Vieux 05/02/2007, 08h02   #2
Stephane Dupille
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut 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
  Réponse avec citation
 
Page generated in 0,04999 seconds with 9 queries