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

Anuncios

Ken Thompson, Dennis Ritchie ganadores del Japan Prize 2011

Los creadores del Sistema Operativo UNIX han sido nombrados los ganadores del premio Japan Prize.

Lee la nota completa aqui.

The ABC’S of UNIX

A is for awk, which runs like a snail, and
B is for biff, which reads all your mail.
C is for cc, as hackers recall, while
D is for dd, the command that does all.
E is for emacs, which rebinds your keys, and
F is for fsck, which rebuilds your trees.
G is for grep, a clever detective, while
H is for halt, which may seem defective.
I is for indent, which rarely amuses, and
J is for join, which nobody uses.
K is for kill, which makes you the boss, while
L is for lex, which is missing from DOS.
M is for more, from which less was begot, and
N is for nice, which it really is not.
O is for od, which prints out things nice, while
P is for passwd, which reads in strings twice.
Q is for quota, a Berkeley-type fable, and
R is for ranlib, for sorting ar table.
S is for spell, which attempts to belittle, while
T is for true, which does very little.
U is for uniq, which is used after sort, and
V is for vi, which is hard to abort.
W is for whoami, which tells you your name, while
X is, well, X, of dubious fame.
Y is for yes, which makes an impression, and
Z is for zcat, which handles compression.

Fuente:
fortune -a

A %d blogueros les gusta esto: