Rpl, buscar y reemplazar strings en Linux, UNIX

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

Acerca de Moycas
Developer Web @moycc

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: