OVH Cloud OVH Cloud

bash & sed

1 réponse
Avatar
lolo
Bonjour,

Je souhaite substituer une chaine de caractère par une autre dans
plusieur fichiers situé dans le repertoire courant d'éxécution du script
mais également dans des sous repertoires de ce repertoire courant.
Je veux que les fichiers modifiés garde le même nom après modification.

J'écris :

#!/bin/bash
for i in ls -R
do
sed s/titi/toto/g *
done

Tout se passe bien pour le repertoire courant mais rien
pour les sous repertoires.

Merci de votre aide,

Laurent

1 réponse

Avatar
Moretti
Bonjour,

Je souhaite substituer une chaine de caractère par une autre dans
plusieur fichiers situé dans le repertoire courant d'éxécution du script
mais également dans des sous repertoires de ce repertoire courant.
Je veux que les fichiers modifiés garde le même nom après modification.

J'écris :

#!/bin/bash
for i in ls -R
do
sed s/titi/toto/g *
done

Tout se passe bien pour le repertoire courant mais rien
pour les sous repertoires.

Merci de votre aide,

Laurent


Personnellement, je vois quelques erreurs d'entree, j'ecrirais plutot:

#!/bin/bash
for i in `ls -R`
do
sed "s/titi/toto/g" ${i}
done

exit

J'espere que ca marchera mieux.

----------
Sebastien Moretti