Buscar cadena de texto en todos los archivos de linux

Muchas veces queremos buscar una cadena dentro de todos los ficheros del sistema en linux, pues bien, aquí teneis la instrucción necesaria para hacerlo desde consola:

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.

Fuente: LinuxData

Gracias a los lectores del Blog podemos añadir las siguientes formas de buscar la cadena:

find “ruta” -type f -exec grep “cadena a buscar” {} \;

find [path] -exec grep -H [cadena] {} \; 2> /dev/null

Este último redirecciona la salida de errores a null por si no tenemos permisos o da algún error.

4 Comentarios to “Buscar cadena de texto en todos los archivos de linux”

  1. linuxfera.net dijo:

    Buscar cadena de texto en todos los archivos de linux | Pingüinos Y Cia…

    Indica el comando necesario para buscar en una lista de ficheros una cadena específica…

  2. petrohs dijo:

    Creo que se obtiene un resultado similar con

    $ find "ruta" -type f -exec grep "cadena a buscar" {} \;

  3. Álex dijo:

    Yo uso lo que dice @petrohs pero además al grep le añado el atributo -H para que me muestre la ruta entera al fichero y no uso -type f ya que aunque hagas un grep sobre un directorio no vas a tener problemas.

    Además cuando me da muchos mensajes de error (por no tener permisos) lo que hago es redireccionar stderr a null, en definitiva:

    find [path] -exec grep -H [cadena] {} \; 2> /dev/null

  4. Psylard dijo:

    Gracias por el apunte chicos! está añadido al post ;)

Comentarios