Buscar cadenas de texto (y remplazar) en GNU/Linux

Si bien no existe un comando directo en GNU/Linux para buscar cadenas, se puede hacer mediante la conjunción de tres comandos, poniendo en el intérprete de comandos la siguiente instrucción:

find "ruta" -type f | xargs grep "cadena a buscar"

Con find (y la opción usada) se buscan archivos en el directorio especificado (usar . para el directorio actual), el comando xargs combina cada elemento con el comando especificado y grep busca patrones en el archivo.

Tambień en varias ocasiones tendremos la necesidad de buscar una cadena de texto y suplirla por otra en n cantidad de archivos, para lograr esto de manera sencilla:

for arg in `find <ruta del directorio de los archivos> -type f`; do perl -pi -e 's/<texto a buscar>/<texto nuevo>/g' $arg; done;

un ejemplo:

for arg in `find /etc/apache2 -type f`; do perl -pi -e 's/90.0.0.20/192.168.1.60/g' $arg; done;

[Fuente: LinuxData y CómoCarajos.]

Anuncios

2 Responses to Buscar cadenas de texto (y remplazar) en GNU/Linux

  1. Freyman says:

    Hola:

    Resulta que al hacer la búsqueda por ejemplo y buscar en un archivo llamado:

    /Documentos/mi tarea de español.odt

    grep: ./Documentos: No existe el fichero ó directorio
    grep: mi: No existe el fichero ó directorio
    grep: tarea: No existe el fichero ó directorio
    grep: de: No existe el fichero ó directorio
    grep: español.odt: No existe el fichero ó directorio

    No está tomando los nombres correctamente ¿como se soluciona?

  2. vando says:

    Hola Freyman, ¡perdón por la respuesta tardía! El problema que tenés es porque la consola reconoce los espacios como parámetros de un comando (o incluso para ejecutar tuberías, como es el “|” u otro comando seguido como es “&&”). En tu caso deberías pasarle:

    /Documentos/mi\ tarea\ de\ español.odt

    ¡Saludos!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: