lunes, 12 de diciembre de 2011

Reemplazar texto en varios archivos desde el terminal.

Buscar y reemplazar texto puede ser una tarea sencilla utilizando los editores de texto más básicos. Pero, ¿qué sucede cuando es necesario hacer esa misma tarea en varios archivos al mismo tiempo?

Bueno, ahí la cosa se complica... o no tanto.
En el siguiente ejemplo, usaremos sed para reemplazar todas las ocurrencias de la palabra "mongo" por la palabra "aurelio" en todos los archivos que tengan la extensión .txt y que se encuentren en la carpeta /home/usuario/micarpeta/.


find /home/usuario/micarpeta/ -name \*.txt -exec sed -i "s/mongo/aurelio/g" {} \; 

Así de fácil...

Antes de terminar, vale la pena mencionar que algunos editores de texto permiten realizar esta operatoria utilizando una interfaz gráfica. Entre otros, cabe destacar a Jedit, Geany, Regexxer, etc.

No hay comentarios:

Publicar un comentario