Tengo la siguiente secuencia de comandos que toma en un archivo de entrada, archivo de salida y reemplaza la cadena en el archivo de entrada con alguna otra cadena y escribe el archivo de salida.¿Cómo puedo hacer una búsqueda masiva y reemplazar con Perl?
Quiero cambiar la secuencia de comandos para recorrer a través de un directorio de archivos es decir, en lugar de solicitar para los archivos de entrada y de salida, el guión debe tomar como argumento una ruta de directorio como C: \ temp \ allFilesTobeReplaced \ y búsqueda para una cadena x y reemplácela con y para todos los archivos bajo esa ruta de directorio y escriba los mismos archivos.
¿Cómo puedo hacer esto?
Gracias.
$file=$ARGV[0];
open(INFO,$file);
@lines=<INFO>;
print @lines;
open(INFO,">c:/filelist.txt");
foreach $file (@lines){
#print "$file\n";
print INFO "$file";
}
#print "Input file name: ";
#chomp($infilename = <STDIN>);
if ($ARGV[0]){
$file= $ARGV[0]
}
print "Output file name: ";
chomp($outfilename = <STDIN>);
print "Search string: ";
chomp($search = <STDIN>);
print "Replacement string: ";
chomp($replace = <STDIN>);
open(INFO,$file);
@lines=<INFO>;
open(OUT,">$outfilename") || die "cannot create $outfilename: $!";
foreach $file (@lines){
# read a line from file IN into $_
s/$search/$replace/g; # change the lines
print OUT $_; # print that line to file OUT
}
close(IN);
close(OUT);