mais =E0 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=E8re de le faire.
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.
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 ?
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.
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.
Dominique Goncalves
Bonjour,
On 9/29/06, KLEIN Stéphane wrote:
2006/9/29, KLEIN Stéphane : > 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 trou vé 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.
Je viens d'essayer ça, la différence avec ta commade, c'est qu'il n'y a pas de backup temporaire (option -i de sed)
find . -type f | xargs sed -i "" -e 's|test|bidule|g'
HTH
-- There's this old saying: "Give a man a fish, feed him for a day. Teach a man to fish, feed him for life."
Bonjour,
On 9/29/06, KLEIN Stéphane <klein.stephane@gmail.com> wrote:
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 trou vé 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.
Je viens d'essayer ça, la différence avec ta commade, c'est qu'il n'y
a pas de backup temporaire (option -i de sed)
find . -type f | xargs sed -i "" -e 's|test|bidule|g'
HTH
--
There's this old saying: "Give a man a fish, feed him for a day. Teach
a man to fish, feed him for life."
2006/9/29, KLEIN Stéphane : > 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 trou vé 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.
Je viens d'essayer ça, la différence avec ta commade, c'est qu'il n'y a pas de backup temporaire (option -i de sed)
find . -type f | xargs sed -i "" -e 's|test|bidule|g'
HTH
-- There's this old saying: "Give a man a fish, feed him for a day. Teach a man to fish, feed him for life."
Daniel Caillibaud
Dominique Goncalves a écrit :
Je viens d'essayer ça, la différence avec ta commade, c'est qu'il n'y a pas de backup temporaire (option -i de sed)
find . -type f | xargs sed -i "" -e 's|test|bidule|g'
Tu peux faire directement find . -type f | xargs sed -ie 's|test|bidule|g'
Mais attention à l'expression, comme tu le disais, il n'y a pas de backup...
Daniel
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Dominique Goncalves a écrit :
Je viens d'essayer ça, la différence avec ta commade, c'est qu'il n'y
a pas de backup temporaire (option -i de sed)
find . -type f | xargs sed -i "" -e 's|test|bidule|g'
Tu peux faire directement
find . -type f | xargs sed -ie 's|test|bidule|g'
Mais attention à l'expression, comme tu le disais, il n'y a pas de backup...
Daniel
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Je viens d'essayer ça, la différence avec ta commade, c'est qu'il n'y a pas de backup temporaire (option -i de sed)
find . -type f | xargs sed -i "" -e 's|test|bidule|g'
Tu peux faire directement find . -type f | xargs sed -ie 's|test|bidule|g'
Mais attention à l'expression, comme tu le disais, il n'y a pas de backup...
Daniel
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Marc Chantreux a écrit, dimanche 1 octobre 2006, à 10:18 :
salut,
aussi.
avec zsh :
sed -ie 's|test|bidule|g' **/*(.)
Heu, ça va créer des sauvegardes avec un « e » final ?
sed -i -e ...
ou
sed -i.old -e ...
-- Jacques L'helgoualc'h
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Marc Chantreux a écrit, dimanche 1 octobre 2006, à 10:18 :
salut,
aussi.
avec zsh :
sed -ie 's|test|bidule|g' **/*(.)
Heu, ça va créer des sauvegardes avec un « e » final ?
sed -i -e ...
ou
sed -i.old -e ...
--
Jacques L'helgoualc'h
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Marc Chantreux a écrit, dimanche 1 octobre 2006, à 10:18 :
salut,
aussi.
avec zsh :
sed -ie 's|test|bidule|g' **/*(.)
Heu, ça va créer des sauvegardes avec un « e » final ?
sed -i -e ...
ou
sed -i.old -e ...
-- Jacques L'helgoualc'h
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Vincent Lefevre
On 2006-10-01 10:18:01 +0200, Marc Chantreux wrote:
avec zsh :
sed -ie 's|test|bidule|g' **/*(.)
Mais s'il y a beaucoup de fichiers, ça va échouer. Il faut alors utiliser zargs.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
On 2006-10-01 10:18:01 +0200, Marc Chantreux wrote:
avec zsh :
sed -ie 's|test|bidule|g' **/*(.)
Mais s'il y a beaucoup de fichiers, ça va échouer. Il faut alors
utiliser zargs.
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact