Buscar y Reemplazar texto en todos los archivos dentro de un directorio y todos los subdirectorios

26/12/2007
By

Si buscaban como reemplazar texto dentro de varios archivos en una sola linea de comando, han llegado al lugar correcto. Muchas veces tenemos que buscar o hacer cambios a un texto determinado y para empezar no sabemos ni en cual archivo, documento o directorio puede estar.

Digamos que le cambiamos direccion IP al servidor, y es necesario hacer los cambios en todos los archivos de configuracion y logs donde aparezca la IP anterior.

Para no estar buscando durante horas entre todos los archivos de nuestro servidor, les paso estos tips para reemplazar strings alfanumericos en linux.

  • Para reemplazar un texto o string cada vez que aparezca en los archivos:
  • deathbian:~# find /path/directorio "*.txt" | xargs perl -pi -e 's/texto/reemplazo/g'
    


  • Para reemplazar la primera vez que aparezca el texto:
  • deathbian:~# find /path/directorio "*.txt" | xargs perl -pi -e 's/texto/reemplazo/'
    


  • Para reemplazar todos los archivos dentro de un directorio:
  • deathbian:~# for arg in `ls -C1`; do perl -pi -e 's/texto/reemplazo/g'; done;
    


Existe infinidad de combinaciones posibles utilizando el shell de la linea de comandos. Tomemos como ejemplo la primera busqueda:

deathbian:~# for arg in `find /your/home/dir -name "*.txt"` ; do perl -pi -e
's/texto/reemplazo/g' $arg; done;


Popularity: 8% [?]


Otros articulos de interes:

  1. MySQL: Como buscar y reemplazar texto en todas las tablas de una base de datos
  2. MySQL: Buscar y Reemplazar texto con SQL
  3. Buscar y Reemplazar – Expresiones Regulares en Vi
  4. Linux – Buscar y borrar archivos del sistema de archivos
  5. Linux: Grep o sed para buscar y borrar lineas de archivos que contengan el texto que coincida

Tags: combinaciones, logs, pi, xargs perl

15 Responses to Buscar y Reemplazar texto en todos los archivos dentro de un directorio y todos los subdirectorios

  1. emhe on 18/07/2011 at 11:40

    Hola.

    Tengo una inquietud adicional:

    La cadena que debo reemplazar está dentro de dos posiciones específicas. Si la encuentra en otra posición no debe reemplazar.

    ¿Qué se debe hacer?

    Mil gracias

  2. ninoska on 20/01/2011 at 19:04

    He tratado de usar esto en linux pero me dice que los archivos no son regulares? Que puede ser? Grácias

    • fher98 on 20/01/2011 at 23:35

      Quizas sean archivos binarios, no de texto?

  3. Felipe on 26/11/2010 at 12:10

    Muchas gracias!!!!, me sirvio mucho para resolver un gran problema que tenia, ya que debía realizar un reemplazo de mas de 25 mil archivo y funciono sin ningun problema.

    Saludos y gracias nuevamente

  4. framontb on 01/07/2010 at 03:32

    ¡¡¡ Genial !!! Me ha venido de perlas.

  5. elche on 01/12/2009 at 01:41

    aca les dejo uno que encontrre reemplaza lineas de texto masivamente en muchas clases de archivoo para xp TexFinderX 2.14 for Windows XP and Vista

Leave a Reply

Your email address will not be published. Required fields are marked *

*