Using perl Syntax Highlighting
#!/usr/bin/perl
#Mando en un array el listado de los archivos que tienen la cadena que busco
#desde la shell de linux le paso la variable $1
my @array=`grep -Re "esto-es-lo-que-busco" $1`;
#Pongo solo los resultados unicos en un nuevo array
my @unicos = keys %{ {map {$_=>1} @array} };
#lo recorro linea a linea pasandolo a la variable line
foreach $line (@unicos) {
#como recultado es ruta_del_archivo_:cadena_que_encontro lo separo por los dos puntos
#obteniendo en $archivo[0] la ruta del archivo desde donde estoy parado
@archivo=split(":",$line);
#abro el archivo
open(ARCH_ORG, "$archivo[0]");
#pongo cada una de las lineas en un array
my @lineas_archivo = <ARCH_ORG>; #leer lineas totales
#cierro el archivo
close(ARCH_ORG);
#abro nuevamente el archivo en modo escritura y borro todo
open (ARCH_DES, ">$archivo[0]");
#comienzo a leer linea a linea
foreach $linea_archivo (@lineas_archivo){
#le saco el espacio a la linea
chomp($linea_archivo);
#sustituyo con la expresion regular "esto-es-lo-que-busco" por "esto-es-lo-que-pongo"
$linea_archivo =~ s/esto-es-lo-que-busco/esto-es-lo-que-pongo/;
#imprimo la linea en el archivo
print ARCH_DES $linea_archivo."\n";
#termino el bucle
}
#cierro el archivo
close (ARCH_DES);
#cierro el bucle inicial
}
#Mando en un array el listado de los archivos que tienen la cadena que busco
#desde la shell de linux le paso la variable $1
my @array=`grep -Re "esto-es-lo-que-busco" $1`;
#Pongo solo los resultados unicos en un nuevo array
my @unicos = keys %{ {map {$_=>1} @array} };
#lo recorro linea a linea pasandolo a la variable line
foreach $line (@unicos) {
#como recultado es ruta_del_archivo_:cadena_que_encontro lo separo por los dos puntos
#obteniendo en $archivo[0] la ruta del archivo desde donde estoy parado
@archivo=split(":",$line);
#abro el archivo
open(ARCH_ORG, "$archivo[0]");
#pongo cada una de las lineas en un array
my @lineas_archivo = <ARCH_ORG>; #leer lineas totales
#cierro el archivo
close(ARCH_ORG);
#abro nuevamente el archivo en modo escritura y borro todo
open (ARCH_DES, ">$archivo[0]");
#comienzo a leer linea a linea
foreach $linea_archivo (@lineas_archivo){
#le saco el espacio a la linea
chomp($linea_archivo);
#sustituyo con la expresion regular "esto-es-lo-que-busco" por "esto-es-lo-que-pongo"
$linea_archivo =~ s/esto-es-lo-que-busco/esto-es-lo-que-pongo/;
#imprimo la linea en el archivo
print ARCH_DES $linea_archivo."\n";
#termino el bucle
}
#cierro el archivo
close (ARCH_DES);
#cierro el bucle inicial
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
No muestra ningún error ni nada, simplemente que ahí...
¿Qué es lo que estoy haciendo mal? ¿o cómo podría hacerlo de otra manera?
Saludos y gracias.