J'ai une série de fichiers dans une arborescence (que je pourrais
trouver avec "find") que je souhaiterais modifier. Je désire remplacer
un texte (disons "toto") par un autre ("tata").
Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata"). Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
man ed (...) A typical command might look like:
,s/old/new/g
which replaces all occurrences of the string old with new.
Fabien SK <fabsk+news@free.fr> écrit:
J'ai une série de fichiers dans une arborescence (que je pourrais
trouver avec "find") que je souhaiterais modifier. Je désire remplacer
un texte (disons "toto") par un autre ("tata").
Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
man ed
(...)
A typical command might look like:
,s/old/new/g
which replaces all occurrences of the string old with new.
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata"). Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
man ed (...) A typical command might look like:
,s/old/new/g
which replaces all occurrences of the string old with new.
Fabien SK
Laurent Wacrenier wrote:
Fabien SK <fabsk+ écrit:
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata"). Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
man ed (...) A typical command might look like:
,s/old/new/g
which replaces all occurrences of the string old with new.
J'ai fait la chose suivante et ça marche
echo $',s/toto/tata/gnw' | ed mon_fichier
Mais maintenant il faut que je le combine avec "find". Le problème est que je ne sais pas comment utiliser une commande avec pipe avec le "-exec" de "find", ou alors avec "xargs" (sans passer par un script intermédiaire). J'aimerais bien le faire en une seule commande (sans rien écrire sur le disque). Si l'un d'entre vous a une astuce pour le faire d'un coup (que ce soit avec "ed" ou autre), je suis preneur.
Laurent Wacrenier wrote:
Fabien SK <fabsk+news@free.fr> écrit:
J'ai une série de fichiers dans une arborescence (que je pourrais
trouver avec "find") que je souhaiterais modifier. Je désire remplacer
un texte (disons "toto") par un autre ("tata").
Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
man ed
(...)
A typical command might look like:
,s/old/new/g
which replaces all occurrences of the string old with new.
J'ai fait la chose suivante et ça marche
echo $',s/toto/tata/gnw' | ed mon_fichier
Mais maintenant il faut que je le combine avec "find". Le problème est
que je ne sais pas comment utiliser une commande avec pipe avec le
"-exec" de "find", ou alors avec "xargs" (sans passer par un script
intermédiaire).
J'aimerais bien le faire en une seule commande (sans rien écrire sur le
disque).
Si l'un d'entre vous a une astuce pour le faire d'un coup (que ce soit
avec "ed" ou autre), je suis preneur.
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata"). Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
man ed (...) A typical command might look like:
,s/old/new/g
which replaces all occurrences of the string old with new.
J'ai fait la chose suivante et ça marche
echo $',s/toto/tata/gnw' | ed mon_fichier
Mais maintenant il faut que je le combine avec "find". Le problème est que je ne sais pas comment utiliser une commande avec pipe avec le "-exec" de "find", ou alors avec "xargs" (sans passer par un script intermédiaire). J'aimerais bien le faire en une seule commande (sans rien écrire sur le disque). Si l'un d'entre vous a une astuce pour le faire d'un coup (que ce soit avec "ed" ou autre), je suis preneur.
Laurent Wacrenier
Fabien SK <fabsk+ écrit:
J'ai fait la chose suivante et ça marche
echo $',s/toto/tata/gnw' | ed mon_fichier
(echo ,s/toto/tata/g; echo w) | ed -s fichier
Mais maintenant il faut que je le combine avec "find". Le problème est que je ne sais pas comment utiliser une commande avec pipe avec le "-exec" de "find", ou alors avec "xargs" (sans passer par un script intermédiaire).
find ... | while read fichier ; do ... ; done
J'aimerais bien le faire en une seule commande (sans rien écrire sur le disque).
ed peut écrire le buffer sur disque.
Si l'un d'entre vous a une astuce pour le faire d'un coup (que ce soit avec "ed" ou autre), je suis preneur.
find ... | xargs perl -pi -e 's/toto/tata/g'
Fabien SK <fabsk+news@free.fr> écrit:
J'ai fait la chose suivante et ça marche
echo $',s/toto/tata/gnw' | ed mon_fichier
(echo ,s/toto/tata/g; echo w) | ed -s fichier
Mais maintenant il faut que je le combine avec "find". Le problème est
que je ne sais pas comment utiliser une commande avec pipe avec le
"-exec" de "find", ou alors avec "xargs" (sans passer par un script
intermédiaire).
find ... | while read fichier ; do ... ; done
J'aimerais bien le faire en une seule commande (sans rien écrire sur le
disque).
ed peut écrire le buffer sur disque.
Si l'un d'entre vous a une astuce pour le faire d'un coup (que ce soit
avec "ed" ou autre), je suis preneur.
Mais maintenant il faut que je le combine avec "find". Le problème est que je ne sais pas comment utiliser une commande avec pipe avec le "-exec" de "find", ou alors avec "xargs" (sans passer par un script intermédiaire).
find ... | while read fichier ; do ... ; done
J'aimerais bien le faire en une seule commande (sans rien écrire sur le disque).
ed peut écrire le buffer sur disque.
Si l'un d'entre vous a une astuce pour le faire d'un coup (que ce soit avec "ed" ou autre), je suis preneur.
find ... | xargs perl -pi -e 's/toto/tata/g'
Fabien SK
Laurent Wacrenier wrote:
Fabien SK <fabsk+ écrit:
J'ai fait la chose suivante et ça marche
echo $',s/toto/tata/gnw' | ed mon_fichier
(echo ,s/toto/tata/g; echo w) | ed -s fichier
Qu'est-ce qui ne va pas avec ma version ?
Mais maintenant il faut que je le combine avec "find". Le problème est que je ne sais pas comment utiliser une commande avec pipe avec le "-exec" de "find", ou alors avec "xargs" (sans passer par un script intermédiaire). find ... | while read fichier ; do ... ; done
Merci, c'est parfait
Laurent Wacrenier wrote:
Fabien SK <fabsk+news@free.fr> écrit:
J'ai fait la chose suivante et ça marche
echo $',s/toto/tata/gnw' | ed mon_fichier
(echo ,s/toto/tata/g; echo w) | ed -s fichier
Qu'est-ce qui ne va pas avec ma version ?
Mais maintenant il faut que je le combine avec "find". Le problème est
que je ne sais pas comment utiliser une commande avec pipe avec le
"-exec" de "find", ou alors avec "xargs" (sans passer par un script
intermédiaire).
find ... | while read fichier ; do ... ; done
Mais maintenant il faut que je le combine avec "find". Le problème est que je ne sais pas comment utiliser une commande avec pipe avec le "-exec" de "find", ou alors avec "xargs" (sans passer par un script intermédiaire). find ... | while read fichier ; do ... ; done
Merci, c'est parfait
Stephane Chazelas
Le Mon, 20 Oct 2003 15:22:32 +0200, Fabien SK écrivait :
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata"). Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
avec le GNU/*BSD find/xargs/sed:
find . -type f -name '*.type' -print0 | xargs -r0 sed -i 's/toto/tata/g'
Avec perl et zsh:
perl -pi -e 's/toto/tata/g' ./**/*.type(.)
Avec perl tout court:
perl -MFile::Find -pi -e'BEGIN{find sub{ ,$File::Find::name if -f&&/.type$/},"."} s/toto/tata/g'
Le Mon, 20 Oct 2003 15:22:32 +0200, Fabien SK écrivait :
J'ai une série de fichiers dans une arborescence (que je pourrais
trouver avec "find") que je souhaiterais modifier. Je désire remplacer
un texte (disons "toto") par un autre ("tata").
Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
avec le GNU/*BSD find/xargs/sed:
find . -type f -name '*.type' -print0 | xargs -r0 sed -i 's/toto/tata/g'
Avec perl et zsh:
perl -pi -e 's/toto/tata/g' ./**/*.type(.)
Avec perl tout court:
perl -MFile::Find -pi -e'BEGIN{find sub{
push@ARGV,$File::Find::name if -f&&/.type$/},"."}
s/toto/tata/g'
Le Mon, 20 Oct 2003 15:22:32 +0200, Fabien SK écrivait :
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata"). Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
avec le GNU/*BSD find/xargs/sed:
find . -type f -name '*.type' -print0 | xargs -r0 sed -i 's/toto/tata/g'
Avec perl et zsh:
perl -pi -e 's/toto/tata/g' ./**/*.type(.)
Avec perl tout court:
perl -MFile::Find -pi -e'BEGIN{find sub{ ,$File::Find::name if -f&&/.type$/},"."} s/toto/tata/g'
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata").
man sed
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Fabien SK <fabsk+news@free.fr> writes:
J'ai une série de fichiers dans une arborescence (que je pourrais
trouver avec "find") que je souhaiterais modifier. Je désire
remplacer un texte (disons "toto") par un autre ("tata").
man sed
--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata").
man sed
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Fabien SK
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata"). Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
avec le GNU/*BSD find/xargs/sed:
find . -type f -name '*.type' -print0 | xargs -r0 sed -i 's/toto/tata/g'
Merci. J'utilise peu sed, et jusqu'à présent je ne l'avais utilisé que sur des pipes (et je croyais qu'il était limité à ça, comme grep).
J'ai une série de fichiers dans une arborescence (que je pourrais
trouver avec "find") que je souhaiterais modifier. Je désire remplacer
un texte (disons "toto") par un autre ("tata").
Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
avec le GNU/*BSD find/xargs/sed:
find . -type f -name '*.type' -print0 | xargs -r0 sed -i 's/toto/tata/g'
Merci. J'utilise peu sed, et jusqu'à présent je ne l'avais utilisé que
sur des pipes (et je croyais qu'il était limité à ça, comme grep).
J'ai une série de fichiers dans une arborescence (que je pourrais trouver avec "find") que je souhaiterais modifier. Je désire remplacer un texte (disons "toto") par un autre ("tata"). Connaissez-vous un moyen de le faire ? (avec "ed" l'éditeur convivial ?)
avec le GNU/*BSD find/xargs/sed:
find . -type f -name '*.type' -print0 | xargs -r0 sed -i 's/toto/tata/g'
Merci. J'utilise peu sed, et jusqu'à présent je ne l'avais utilisé que sur des pipes (et je croyais qu'il était limité à ça, comme grep).
Laurent Wacrenier
Fabien SK <fabsk+ écrit:
echo $',s/toto/tata/gnw' | ed mon_fichier
(echo ,s/toto/tata/g; echo w) | ed -s fichier
Qu'est-ce qui ne va pas avec ma version ?
- C'est quoi $'' ? Ça n'a pas l'air d'être portable. - "ed -s" vire le prompt.
Si on n'aime pas echo, on peut le faire avec printf : printf ",s/toto/tata/gnwn"
Fabien SK <fabsk+news@free.fr> écrit:
echo $',s/toto/tata/gnw' | ed mon_fichier
(echo ,s/toto/tata/g; echo w) | ed -s fichier
Qu'est-ce qui ne va pas avec ma version ?
- C'est quoi $'' ? Ça n'a pas l'air d'être portable.
- "ed -s" vire le prompt.
Si on n'aime pas echo, on peut le faire avec printf :
printf ",s/toto/tata/gnwn"