miércoles, 25 de noviembre de 2009

LINUX: Buscar y reemplazar

Para reemplazar todas las cadenas cadena1 por cadena2 en todos los archivos ejecute:

grep -ril cadena1 * | xargs perl -pi -i.bak -e "s@cadena1@cadena2@g";

Nota: Los @ son separadores, puede utilizar otros caracteres teniendo en cuenta que el mismo no perteneza a la cadena buscada o escape en la cadena dicho caracter.

Por ejemplo:

Si su separador es @ y su cadena a buscar es @dominio.com debería escaparlo de la siguiente manera:
grep -ril cadena1 * | xargs perl -pi -i.bak -e "s@\@dominio.com@cadena2@g"; (Note la \ antes de la @)

Este comando genera archivos .bak (respaldos), si todo ha salido bien ejecute el siguiente comando para eliminarlos:

find -name \*.bak | xargs rm -f {} \;

No hay comentarios:

Publicar un comentario

Me interesa mucho tu opinión, consejo, aporte, sugerencia y todo lo que tengas para decir. Cualquier aporte enriquecerá este blog.
Desde ya muchas gracias!