Re: Comment appliquer un s/foo/bar/g sur tout les fichiers d'un répertoire et ses sous répertoires ?
2006/9/29, KLEIN Stéphane <klein.stephane@gmail.com>:
Bonjour,
j'aimerais appliquer un s/foo/bar/g sur tout les fichiers d'un
répertoire et ses sous répertoires ?
J'ai bien trouvé des manuels pour "sed" :
http://users.cybercity.dk/~bse26236/batutil/help/SED.HTM
http://sed.sourceforge.net/sed1line_fr.html
http://www.ptug.org/sed/sedfaq.htm
mais à chaque fois les commandes s'appliquent sur un fichier. Je
suppose qu'il faut utiliser un "find" entre ` ` mais je ne sais pas
exactement l'art et la manière de le faire.
à cette adresse http://www.abrillant.com/doc/linux/index.html j'ai trouvé ceci :
b. Search and replace a MOTIF in all file from the current directory
# Be careful with such command
# It creates a temporary file with the good motif and
# replace the old file by this one.
# It is really dangerous to use the same stream for reading and writing
# That's why the temporary file is used
for file in $(find . -type f); do
sed 's/OLDMOTIF/NEWMOTIF/g' < $file > $file.tmp
rm -f $file
mv $file.tmp $file
done
Cependant, je ne sais pas si il y a plus court en une seule ligne.
Reply to: