[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: