Je programme très peu dans beaucoup de langage.
Il m'a toujours été dit que Perl était fait pour le "traitement" de texte.
J'ai un "gros site" intranet (50Mo de scripts en PHP et Javascript, hors
images et fichier binaires) qui se connecte à plusieurs serveurs SQL et
dont certaines URL contenues dedans sont codées en dur.
Je souhaite pouvoir dupliquer ce site pour que chacun des
testeurs/developpeurs) en ait sa copie locale sur son portable, par
exemple, dans un but d'expérimentation.
Pour ça, il y a besoin de transformer les chaines du genre:
serveur-sql01.localdomain
en
localhost
et dans tous les srcipts PHP remplacer toute allusion en serveur en
production par localhost.
J'ai déjà de quoi dupliquer la base de donnée (dump serveur + restore sur
chaque machine).
Je cherche donc un document traitant de cet aspect de Perl qui me
conviendrait, avec parcours recursif de l'arborescence, si vous en
connaissez un.
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
Patrice Karatchentzeff
"Mihamina Rakotomandimby (R12y)" a écrit :
[...]
Je souhaite pouvoir dupliquer ce site pour que chacun des testeurs/developpeurs) en ait sa copie locale sur son portable, par exemple, dans un but d'expérimentation.
Pour ça, il y a besoin de transformer les chaines du genre: serveur-sql01.localdomain en localhost
et dans tous les srcipts PHP remplacer toute allusion en serveur en production par localhost. J'ai déjà de quoi dupliquer la base de donnée (dump serveur + restore sur chaque machine).
Je cherche donc un document traitant de cet aspect de Perl qui me conviendrait, avec parcours recursif de l'arborescence, si vous en connaissez un.
# cd répertoire-qui-va-bien # find . -type f -exec perl -pi .bak -e 's/serveur-sql01.localdomain/localhost/g' {} ;
"Mihamina Rakotomandimby (R12y)" <mihamina@rktmb.org> a écrit :
[...]
Je souhaite pouvoir dupliquer ce site pour que chacun des
testeurs/developpeurs) en ait sa copie locale sur son portable, par
exemple, dans un but d'expérimentation.
Pour ça, il y a besoin de transformer les chaines du genre:
serveur-sql01.localdomain
en
localhost
et dans tous les srcipts PHP remplacer toute allusion en serveur en
production par localhost.
J'ai déjà de quoi dupliquer la base de donnée (dump serveur + restore sur
chaque machine).
Je cherche donc un document traitant de cet aspect de Perl qui me
conviendrait, avec parcours recursif de l'arborescence, si vous en
connaissez un.
# cd répertoire-qui-va-bien
# find . -type f -exec perl -pi .bak -e 's/serveur-sql01.localdomain/localhost/g' {} ;
Je souhaite pouvoir dupliquer ce site pour que chacun des testeurs/developpeurs) en ait sa copie locale sur son portable, par exemple, dans un but d'expérimentation.
Pour ça, il y a besoin de transformer les chaines du genre: serveur-sql01.localdomain en localhost
et dans tous les srcipts PHP remplacer toute allusion en serveur en production par localhost. J'ai déjà de quoi dupliquer la base de donnée (dump serveur + restore sur chaque machine).
Je cherche donc un document traitant de cet aspect de Perl qui me conviendrait, avec parcours recursif de l'arborescence, si vous en connaissez un.
# cd répertoire-qui-va-bien # find . -type f -exec perl -pi .bak -e 's/serveur-sql01.localdomain/localhost/g' {} ;
# find . -type f -exec perl -pi .bak -e # 's/serveur-sql01.localdomain/localhost/g' {} ; Mais perl est presque anecdotique ici...
Voilà. Tu sais, c'est faire un zoli script Perl qui cherche lui meme dans l'arborescence qui me plairait. J'ai meme trouvé http://www.perlmonks.org/?node_id0020 qui m'aidera à telecharger du serveur de production et tout...
Patrice Karatchentzeff wrote:
# find . -type f -exec perl -pi .bak -e
# 's/serveur-sql01.localdomain/localhost/g' {} ;
Mais perl est presque anecdotique ici...
Voilà.
Tu sais, c'est faire un zoli script Perl qui cherche lui meme dans
l'arborescence qui me plairait.
J'ai meme trouvé http://www.perlmonks.org/?node_id0020 qui m'aidera à
telecharger du serveur de production et tout...
# find . -type f -exec perl -pi .bak -e # 's/serveur-sql01.localdomain/localhost/g' {} ; Mais perl est presque anecdotique ici...
Voilà. Tu sais, c'est faire un zoli script Perl qui cherche lui meme dans l'arborescence qui me plairait. J'ai meme trouvé http://www.perlmonks.org/?node_id0020 qui m'aidera à telecharger du serveur de production et tout...
Patrice Karatchentzeff
"Mihamina Rakotomandimby (R12y)" a écrit :
Patrice Karatchentzeff wrote:
# find . -type f -exec perl -pi .bak -e # 's/serveur-sql01.localdomain/localhost/g' {} ; Mais perl est presque anecdotique ici...
Voilà. Tu sais, c'est faire un zoli script Perl qui cherche lui meme dans l'arborescence qui me plairait.
Ben, c'est à peine plus compliqué....
perl -e 'use File::Find::Rule ; my @files=File::Find::Rule->file()->in("./") ; for my $file (@files) { print $file, "n" }'
(j'ai fait un print : tu fais la substitution à la place. Tu vires aussi le one-liner qui est lourd et tu paramétrises le path).
# cd répertoire-qui-va-bien # find . -type f -exec perl -pi .bak -e 's/serveur-sql01.localdomain/localhost/g' {} ;
Mais perl est presque anecdotique ici...
PK
Surtout que File::Find sait faire la meme chose en interne...
oui mais c'est plus long à taper :)
Ca presente l'enorme avantage que tu peux filtrer des choses... Eviter de convertir en aveugle des trucs qui ne doivent pas l'etre comme des images par exemple. Ou adapter la conversion au type de fichier (si on a une facon plus fute-fute de faire, par exemple analyser les url dans du html, convertir les emplacements dans les fichiers php). Bref, ca va vite etra payant...
In article <87sl9pyz3k.fsf@belledonne.chartreuse.fr>,
Patrice Karatchentzeff <p.karatchentzeff@free.fr> wrote:
espie@lain.home (Marc Espie) a écrit :
In article <87r6p9kzri.fsf@belledonne.chartreuse.fr>,
Patrice Karatchentzeff <p.karatchentzeff@free.fr> wrote:
# cd répertoire-qui-va-bien
# find . -type f -exec perl -pi .bak -e
's/serveur-sql01.localdomain/localhost/g' {} ;
Mais perl est presque anecdotique ici...
PK
Surtout que File::Find sait faire la meme chose en interne...
oui mais c'est plus long à taper :)
Ca presente l'enorme avantage que tu peux filtrer des choses...
Eviter de convertir en aveugle des trucs qui ne doivent pas l'etre
comme des images par exemple. Ou adapter la conversion au type
de fichier (si on a une facon plus fute-fute de faire, par exemple
analyser les url dans du html, convertir les emplacements dans les
fichiers php). Bref, ca va vite etra payant...
# cd répertoire-qui-va-bien # find . -type f -exec perl -pi .bak -e 's/serveur-sql01.localdomain/localhost/g' {} ;
Mais perl est presque anecdotique ici...
PK
Surtout que File::Find sait faire la meme chose en interne...
oui mais c'est plus long à taper :)
Ca presente l'enorme avantage que tu peux filtrer des choses... Eviter de convertir en aveugle des trucs qui ne doivent pas l'etre comme des images par exemple. Ou adapter la conversion au type de fichier (si on a une facon plus fute-fute de faire, par exemple analyser les url dans du html, convertir les emplacements dans les fichiers php). Bref, ca va vite etra payant...
Nicolas George
Patrice Karatchentzeff wrote in message :
perl -e 'use File::Find::Rule ; my @files=File::Find::Rule->file()->in("./") ; for my $file (@files) { print $file, "n" }'
perl -MFile::Find -e 'find sub { print $File::Find::name, "n" }, "."'
Ça a en plus l'avantage de ne pas constituer de liste de fichiers en mémoire.
Patrice Karatchentzeff wrote in message
<87myzxowxj.fsf@belledonne.chartreuse.fr>:
perl -e 'use File::Find::Rule ; my @files=File::Find::Rule->file()->in("./") ; for my $file (@files) {
print $file, "n" }'
perl -MFile::Find -e 'find sub { print $File::Find::name, "n" }, "."'
Ça a en plus l'avantage de ne pas constituer de liste de fichiers en
mémoire.