[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]

Re: Question sur SED



[email protected] (Benoit Galarneau) écrit :

> for i in $(find /home/httpd/html -name \*.html)
> do sed -e \
> 's/Weight/Poids/g' \
> < $i > $i.tmp
> mv $i.tmp $i
> done

Juste un petit conseil comme ça : au cas où la commande sed
échouerait, pour une raison ou une autre, le fichier $i.tmp pourrait
se retrouver vide puis écraser $i ; ainsi, il vaut mieux utiliser
quelque chose du genre

        sed -e '...' < $i > $i.tmp &&
        mv $i.tmp $i

pour ne pas tout perdre.

Comme ça, si sed retourne un code d'erreur, alors on est protégé.

Aussi : perl et son option de ligne de commande -i peuvent être très
appropriés pour ce genre de manipulation ; voir perlrun(1).

        find /home/httpd/html -name '*.html' -print0 |
        xargs -0 perl -i.bak -pe 's/foo/bar/g'


Charles