J'ai essayé de coder un script Perl pour remplacer du texte sur tous les fichiers source de mon projet. Je suis dans le besoin de quelque chose comme:Existe-t-il un moyen simple de mettre en place la substitution de texte de fichier en bloc?
perl -p -i.bak -e "s/thisgoesout/thisgoesin/gi" *.{cs,aspx,ascx}
Mais que tous les Parsis les fichiers d'un répertoire récursive.
Je viens de commencer un script:
use File::Find::Rule;
use strict;
my @files = (File::Find::Rule->file()->name('*.cs','*.aspx','*.ascx')->in('.'));
foreach my $f (@files){
if ($f =~ s/thisgoesout/thisgoesin/gi) {
# In-place file editing, or something like that
}
}
Mais maintenant, je suis coincé. Existe-t-il un moyen simple d'éditer tous les fichiers en place en utilisant Perl?
Veuillez noter que je n'ai pas besoin de conserver une copie de chaque fichier modifié; Je suis ai « em all = subversioned)
Mise à jour: J'ai essayé sur Cygwin,
perl -p -i.bak -e "s/thisgoesout/thisgoesin/gi" {*,*/*,*/*/*}.{cs,aspx,ascx
Mais il semble que ma liste d'arguments a explosé à la taille maximale autorisée. En fait, je reçois des erreurs étranges sur Cygwin ...
Vous devriez probablement noter que vous exécutez Windows. –