Ipsissima verba Anibal Duardo:
> Por ahi vi que este tema ya se trat�, pero no entiendo bien. Yo
> necesito cambiar una cadena "oracle" por otra "nuevooracle" dentro
> de unos cuantos archivos debajo de un directorio y sus
> subdirectorios. No son muchos en total unos 19900, jejeje.
> creo que jonh puso algo como
>
> perl -pi -e 's/oracle/nuevooracle/g' *
>
> Como hago para que esto sea recursivo en subdirectorios, he estado
> tratando de encontrarlo en perl pero no lo logro, ya que ni idea de
> perl que tengo, je
Usar Perl para esto es matar pulgas con escopeta, en mi opini�n.
Yo usar�a algo como:
find /home/alguien/dir -type f -name '*.txt' -exec \
sh -c 'echo "$0"; (sed -e "s/oracle/nuevooracle/g" < "$0" > "$0".tmp) \
&& mv "$0".tmp "$0"' '{}' ';'
Nota que esto es muy peligroso. Deber�as correr primero el find con
los criterios de b�squeda, pero sin el exec, para ver que no se est�n
procesando cosas que no deben; y deber�as ejecutar la l�nea completa
sobre un directorio de prueba, con copias de algunos de los archivos,
y verificar que se haga lo que quieres, antes de correrlo sobre el
directorio real.
Finalmente, esto no es particularmente r�pido, por la invocaci�n a sh
en cada iteraci�n; ni particularmente limpio, porque se sobreescriben
incluso archivos en los que no se hizo ning�n reemplazo. Una soluci�n
m�s limpia probablemente requerir�a un script en forma (en sh o en
Perl, como gustes)...
... lo cual se deja como ejercicio para el lector :-)
-CR
--
Ceterum censeo: SCO delenda est.