El otro dia un amigo me pregunto como podia hacerle para buscar y modificar una cadena de texto en sus archivos de un proyecto sobre el cual esta trabajando, el folder contiene algunos cientos de archivos PHP que tenía que modificar, afortunadamente su S.O. es Linux, le di dos soluciones, la primera programar un script de bash haciendo uso de los comandos find, exec
y sed
que se encargara de realizar las modificaciones al contenido de sus archivos, la segunda es utilizar una utileria que hace tiempo me recomendaron y utilice llamada rpl.
¿Qué es exactamente Rpl?
Es una utileria compatible con sistemas tipo UN*X y se encarga de buscar y reemplazar strings en archivos de texto, una ventaja importante es que trabaja recursivamente sobre directorios.
Lo primero verficar si nuestro sistema cuenta con rpl
$ whereis -b rpl
Si no cuentas con rpl descarga el tarball, abre una ventana de consola y escribe:
# wget http://downloads.laffeycomputer.com/current_builds/rpl-1.4.1.tar.gz
Instalación
# tar -xzvf rpl-1.4.1.tar.gz
# tar cd rpl-1.4.1/
# ./configure
# make
# make install
Ejemplos:
$ rpl -i -- "string_old" "string_new" nombreArchivo
Busca y reemplaza “string_old” por “string_new” en el archivo “nombreArchivo”
$ rpl -Re "string_old" "string_new" -x '.php' ./
Busca en todos los archivos .php
la cadena “string_old” y la reemplaza por “string_new” la revisión de los archivos se realiza en forma recursiva partiendo de la ubicación actual ( ./ )
y todos los directorios que esten debajo de ella (hijos).
$ rpl -Refv "string_old" "string_new" -x'.php' -x'.cpp' ./
Busca en los archivos .php
y .cpp
la cadena “string_old” y la reemplaza por “string_new” a partir de la ubicación actual y en forma recursiva , pero además forza la sobreescritura ( f )
aún cuando el usuario no tenga los permisos de escritura sobre los archivos y muestra en pantalla ( v )
los resultados de las modificaciones “verbose”.
Para ver todas las opciones que puedes utilizar con el comando rpl teclea:
$ rpl -h
$ rpl --help
Para más información visita la página http://www.laffeycomputer.com/rpl.html
Comparte esta liga: http://wp.me/p13tD0-6Y
Me gusta:
Me gusta Cargando...