Reemplazar texto en varios archivos bajo Linux

Jun 03, 2013 1 Comment by

Hay varias formas de reemplazar un texto en varios archivos (usando perl, un for con vim, etc.), pero con sed, todo es más facil.

Si deseamos reemplazar el string manzana por pera a todos los archivos de un directorio, deberiamos ejecutar:

sed -i 's/manzana/pera/g' *

Sencillo? además que utiliza la misma sintaxis de vim =)

Y si queremos hacer el reemplazo de forma recursiva, lo podemos hacer realizando una busqueda previa con find (Reemplazar gato por kitty):

find . -type f -print0 | xargs -0 sed -i 's/gato/kitty/g'

O de forma más acotada, buscando con grep las coincidencias y sobre ellas el reemplazo:

grep -l -R "gato" * |  xargs sed -i 's/gato/kitty/g'
GNU/Linux

About the author

Ingeniero en Informática, Oracle Certified Master Java EE 6 Enterprise Architect, Oracle Certified Professional Java Programmer. Experto en distintas ramas de la computación y otras "yerbas" xD. Si te gusto este post, sígueme en @deerme_org, escríbeme a info AT deerme.org o contactame por linkedin.

One Response to “Reemplazar texto en varios archivos bajo Linux”

  1. DumasLinx says:

    Gracias por el post. Por si a alguien le interesa, algunos ejmplos mas para hacer el “buscar-reemplazar” con sed: http://www.sysadmit.com/2015/07/linux-reemplazar-texto-en-archivos-con-sed.html<

Leave a Reply


8 * = forty