J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut
remplacer toute occurence de "python2.3" par "python2.4"
Je le fais pour le moment avec ZSH et sed:
for F (**/*.py)
(sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ;\
mv ${F}.tmp ${F})
Peut-être y a t il mieux? Je cherche à optimiser dans la longueur de la
ligne à entrer. Perl en dernier choix. J'avais pensé que peut-etre ZSH
avait un module qui fait ça... mais je n'ai pas eu le temps de parcourir
toute sa doc.
Il s'agit d'un répertoire d'environ 20 fichiers maximum,
sans caractères spéciaux dans le nom (le répertoire debian/ d'un package
Debian)
Merci.
--
Telephone portable "intelligent" (SmartPhone) GSM, GPRS,...
Il est sous Linux, ne coute pas trop cher,...
http://www.it2l.com/product_info.php?cPath=91&products_id=456
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sébastien MONBRUN aka TiChou
Dans le message <news:, *R12y* tapota sur f.c.o.unix :
Bonjour,
Salut,
J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut remplacer toute occurence de "python2.3" par "python2.4" Je le fais pour le moment avec ZSH et sed:
for F (**/*.py) (sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ; mv ${F}.tmp ${F})
Peut-être y a t il mieux?
Oui, bien mieux.
Je cherche à optimiser dans la longueur de la ligne à entrer. Perl en dernier choix. J'avais pensé que peut-etre ZSH avait un module qui fait ça... mais je n'ai pas eu le temps de parcourir toute sa doc.
$ rename python2.3 python2.4 **/*.py(.D)
ou mieux, avec le module zmv chargé (autoload -U zmv) :
Dans le message <news:pan.2006.01.05.23.32.35.606537@etu.univ-orleans.fr>,
*R12y* tapota sur f.c.o.unix :
Bonjour,
Salut,
J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut
remplacer toute occurence de "python2.3" par "python2.4"
Je le fais pour le moment avec ZSH et sed:
for F (**/*.py)
(sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ;
mv ${F}.tmp ${F})
Peut-être y a t il mieux?
Oui, bien mieux.
Je cherche à optimiser dans la longueur de la ligne à entrer. Perl en
dernier choix. J'avais pensé que peut-etre ZSH avait un module qui fait
ça... mais je n'ai pas eu le temps de parcourir toute sa doc.
$ rename python2.3 python2.4 **/*.py(.D)
ou mieux, avec le module zmv chargé (autoload -U zmv) :
Dans le message <news:, *R12y* tapota sur f.c.o.unix :
Bonjour,
Salut,
J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut remplacer toute occurence de "python2.3" par "python2.4" Je le fais pour le moment avec ZSH et sed:
for F (**/*.py) (sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ; mv ${F}.tmp ${F})
Peut-être y a t il mieux?
Oui, bien mieux.
Je cherche à optimiser dans la longueur de la ligne à entrer. Perl en dernier choix. J'avais pensé que peut-etre ZSH avait un module qui fait ça... mais je n'ai pas eu le temps de parcourir toute sa doc.
$ rename python2.3 python2.4 **/*.py(.D)
ou mieux, avec le module zmv chargé (autoload -U zmv) :
il s'agit de remplacer les occurences de python2.3 par python2.4 _DANS_ le fichier (pas le nom du fichier).
-- Telephone portable "intelligent" (SmartPhone) GSM, GPRS,... Il est sous Linux, ne coute pas trop cher,... http://www.it2l.com/product_info.php?cPath&products_idE6
il s'agit de remplacer les occurences de python2.3 par python2.4 _DANS_ le
fichier (pas le nom du fichier).
--
Telephone portable "intelligent" (SmartPhone) GSM, GPRS,...
Il est sous Linux, ne coute pas trop cher,...
http://www.it2l.com/product_info.php?cPath&products_idE6
il s'agit de remplacer les occurences de python2.3 par python2.4 _DANS_ le fichier (pas le nom du fichier).
-- Telephone portable "intelligent" (SmartPhone) GSM, GPRS,... Il est sous Linux, ne coute pas trop cher,... http://www.it2l.com/product_info.php?cPath&products_idE6
Philippe Michel
Le 05-01-2006, R12y a écrit :
Bonjour,
J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut remplacer toute occurence de "python2.3" par "python2.4" Je le fais pour le moment avec ZSH et sed:
for F (**/*.py) (sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ; mv ${F}.tmp ${F})
Peut-être y a t il mieux? Je cherche à optimiser dans la longueur de la ligne à entrer.
Utiliser ed plutôt que sed permettrait d'eviter le fichier temporaire et le mv. Quelque-chose comme ça dans la boucle for :
ed - ${F} <<EOF g/python2.3/s//python2.4/g w EOF
Le 05-01-2006, R12y <mihamina.rakotomandimby@etu.univ-orleans.fr> a écrit :
Bonjour,
J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut
remplacer toute occurence de "python2.3" par "python2.4"
Je le fais pour le moment avec ZSH et sed:
for F (**/*.py)
(sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ;
mv ${F}.tmp ${F})
Peut-être y a t il mieux? Je cherche à optimiser dans la longueur de la
ligne à entrer.
Utiliser ed plutôt que sed permettrait d'eviter le fichier temporaire et
le mv. Quelque-chose comme ça dans la boucle for :
J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut remplacer toute occurence de "python2.3" par "python2.4" Je le fais pour le moment avec ZSH et sed:
for F (**/*.py) (sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ; mv ${F}.tmp ${F})
Peut-être y a t il mieux? Je cherche à optimiser dans la longueur de la ligne à entrer.
Utiliser ed plutôt que sed permettrait d'eviter le fichier temporaire et le mv. Quelque-chose comme ça dans la boucle for :
ed - ${F} <<EOF g/python2.3/s//python2.4/g w EOF
Stephane Chazelas
On Fri, 06 Jan 2006 00:32:36 +0100, R12y wrote:
Bonjour,
J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut remplacer toute occurence de "python2.3" par "python2.4" Je le fais pour le moment avec ZSH et sed:
for F (**/*.py) (sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ; mv ${F}.tmp ${F}) [...]
perl -pi -e 's/python2.3/python2.4/g' **/*.py(D.)
-- Stephane
On Fri, 06 Jan 2006 00:32:36 +0100, R12y wrote:
Bonjour,
J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut
remplacer toute occurence de "python2.3" par "python2.4"
Je le fais pour le moment avec ZSH et sed:
for F (**/*.py)
(sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ;
mv ${F}.tmp ${F})
[...]
J'ai un ensemble de fichier, sous une arborescece, dans lesquel il faut remplacer toute occurence de "python2.3" par "python2.4" Je le fais pour le moment avec ZSH et sed:
for F (**/*.py) (sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ; mv ${F}.tmp ${F}) [...]
perl -pi -e 's/python2.3/python2.4/g' **/*.py(D.)
-- Stephane
Sébastien MONBRUN aka TiChou
Dans le message <news:, *R12y* tapota sur f.c.o.unix :
rename/zmv?
Oups.
il s'agit de remplacer les occurences de python2.3 par python2.4 _DANS_ le fichier (pas le nom du fichier).
Désolé, c'était l'heure tardive... Ma réponse aurait du être la même que celle de Stéphane. Note que tu peux, à la place de perl, utiliser un GNU sed qui a aussi son option «in place».
-- Sébastien MONBRUN aka TiChou
Dans le message <news:pan.2006.01.06.02.45.53.66239@etu.univ-orleans.fr>,
*R12y* tapota sur f.c.o.unix :
rename/zmv?
Oups.
il s'agit de remplacer les occurences de python2.3 par python2.4 _DANS_ le
fichier (pas le nom du fichier).
Désolé, c'était l'heure tardive... Ma réponse aurait du être la même que
celle de Stéphane. Note que tu peux, à la place de perl, utiliser un GNU sed
qui a aussi son option «in place».
Dans le message <news:, *R12y* tapota sur f.c.o.unix :
rename/zmv?
Oups.
il s'agit de remplacer les occurences de python2.3 par python2.4 _DANS_ le fichier (pas le nom du fichier).
Désolé, c'était l'heure tardive... Ma réponse aurait du être la même que celle de Stéphane. Note que tu peux, à la place de perl, utiliser un GNU sed qui a aussi son option «in place».
-- Sébastien MONBRUN aka TiChou
Sébastien MONBRUN aka TiChou
(supersedes )
Dans le message <news:, *R12y* tapota sur f.c.o.unix :
rename/zmv?
Oups.
il s'agit de remplacer les occurences de python2.3 par python2.4 _DANS_ le fichier (pas le nom du fichier).
Désolé, c'était l'heure tardive... Ma réponse aurait du être la même que celle de Stéphane. Note que tu peux, à la place de perl, utiliser un GNU sed récent qui a aussi son option «in place».
Dans le message <news:pan.2006.01.06.02.45.53.66239@etu.univ-orleans.fr>,
*R12y* tapota sur f.c.o.unix :
rename/zmv?
Oups.
il s'agit de remplacer les occurences de python2.3 par python2.4 _DANS_ le
fichier (pas le nom du fichier).
Désolé, c'était l'heure tardive... Ma réponse aurait du être la même que
celle de Stéphane.
Note que tu peux, à la place de perl, utiliser un GNU sed récent qui a aussi
son option «in place».
Dans le message <news:, *R12y* tapota sur f.c.o.unix :
rename/zmv?
Oups.
il s'agit de remplacer les occurences de python2.3 par python2.4 _DANS_ le fichier (pas le nom du fichier).
Désolé, c'était l'heure tardive... Ma réponse aurait du être la même que celle de Stéphane. Note que tu peux, à la place de perl, utiliser un GNU sed récent qui a aussi son option «in place».
-- Sébastien MONBRUN aka TiChou
Nicolas George
R12y wrote in message :
for F (**/*.py) (sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ; mv ${F}.tmp ${F})
Il y a une option -i à GNU sed qui fera ça plus efficacement (mais fondamentalement de la même manière). Soit dit en passant, les parenthèses seraient mieux remplacées par des accolades, histoires d'économiser un fork par fichier. Toujours en passant, si tu l'écris comme ça, ça remplace aussi « python2x3 », puisque le point reconnaît n'importe quel caractère.
R12y wrote in message
<pan.2006.01.05.23.32.35.606537@etu.univ-orleans.fr>:
for F (**/*.py)
(sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ;
mv ${F}.tmp ${F})
Il y a une option -i à GNU sed qui fera ça plus efficacement (mais
fondamentalement de la même manière). Soit dit en passant, les parenthèses
seraient mieux remplacées par des accolades, histoires d'économiser un fork
par fichier. Toujours en passant, si tu l'écris comme ça, ça remplace aussi
« python2x3 », puisque le point reconnaît n'importe quel caractère.
for F (**/*.py) (sed 's,python2.3,python2.4,g' < ${F} > ${F}.tmp ; mv ${F}.tmp ${F})
Il y a une option -i à GNU sed qui fera ça plus efficacement (mais fondamentalement de la même manière). Soit dit en passant, les parenthèses seraient mieux remplacées par des accolades, histoires d'économiser un fork par fichier. Toujours en passant, si tu l'écris comme ça, ça remplace aussi « python2x3 », puisque le point reconnaît n'importe quel caractère.
R12y
On Fri, 06 Jan 2006 13:18:56 +0000, Nicolas George wrote:
Toujours en passant, si tu l'écris comme ça, ça remplace aussi « python2x3 », puisque le point reconnaît n'importe quel caractère.
Zut, j'ai oublié de l'échapper. Merci.
-- Telephone portable "intelligent" (SmartPhone) GSM, GPRS,... Il est sous Linux, ne coute pas trop cher,... http://www.it2l.com/product_info.php?cPath&products_idE6
On Fri, 06 Jan 2006 13:18:56 +0000, Nicolas George wrote:
Toujours en passant, si tu l'écris comme ça, ça remplace aussi
« python2x3 », puisque le point reconnaît n'importe quel caractère.
Zut, j'ai oublié de l'échapper.
Merci.
--
Telephone portable "intelligent" (SmartPhone) GSM, GPRS,...
Il est sous Linux, ne coute pas trop cher,...
http://www.it2l.com/product_info.php?cPath&products_idE6
On Fri, 06 Jan 2006 13:18:56 +0000, Nicolas George wrote:
Toujours en passant, si tu l'écris comme ça, ça remplace aussi « python2x3 », puisque le point reconnaît n'importe quel caractère.
Zut, j'ai oublié de l'échapper. Merci.
-- Telephone portable "intelligent" (SmartPhone) GSM, GPRS,... Il est sous Linux, ne coute pas trop cher,... http://www.it2l.com/product_info.php?cPath&products_idE6
Laurent Wacrenier
Philippe Michel écrit:
Utiliser ed plutôt que sed permettrait d'eviter le fichier temporaire et le mv. Quelque-chose comme ça dans la boucle for :
"ed" utilise des fichiers temporaires, sauf qu'on ne les voit pas. Ils sont normalement dans /tmp ce qui a des avantages et des inconvenients.
Philippe Michel <philippe.michel3@tele1plus1.fr.invalid> écrit:
Utiliser ed plutôt que sed permettrait d'eviter le fichier temporaire et
le mv. Quelque-chose comme ça dans la boucle for :
"ed" utilise des fichiers temporaires, sauf qu'on ne les voit pas.
Ils sont normalement dans /tmp ce qui a des avantages et des
inconvenients.