Cómo buscar texto en el contenido de los archivos

Tal vez nunca precisaste hacerlo, tal vez lo intentaste una vez y te resignaste. De cualquier forma, te ratifico lo que seguramente ya sospechabas: no es posible buscar texto en el contenido de los archivos desde Nautilus. Por las dudas todavía estés perdido tratando de descubrir cómo demonios buscar algo en Nautilus, existe un botón con un ícono de lupa justo al lado de la barra de direcciones (más fácil, apretá Ctrl+F). Desde allí, podés buscar carpetas y archivos por nombre, pero no podés buscar texto en el contenido de los archivos. Entonces, ¿cómo hacemos? He aquí la solución…bueno, a medias. 🙂

Gnome-Search-Tool, a sólo dos clics de distancia…

Andá a Lugares > Buscar archivos… También podés ejecutar esta herramienta apretando Alt+F2 y escribiendo gnome-search-tool.

Una vez abierta la ventana, hacé clic donde dice Ver más opciones. Allí te va a permitir ingresar el texto a buscar. Además, vas a poder ingresar otros parámetros de búsqueda como la fecha de modificación, el tamaño, el propietario del archivo, etc.

A través del terminal

Tal vez hayas utilizado el comando grep si saber bien para qué sirve. Bueno, llegó el momento de aprender.

Es un comando que sirve, precisamente, para buscar texto en el contenido de los archivos. Podés realizar todo tipo de búsqueda que se te ocurra. Como todo comando del terminal, su secreto está en conocer bien los parámetros disponibles.

Vamos a poner un ejemplo concreto. Supongamos que querés buscar todos los archivos que contengan la frase “usemos linux” dentro tu carpeta /media/win/cosas.

El comando a ejecutar sería:

grep -lir "usemos linux" "/media/win/cosas"

El parámetro -l le indica que imprima los nombres de archivos en los que se encuentre el texto solicitado. El parámetro -i, que ignore las mayúsculas y minúsculas. El parámetro -r, que busque en forma recursiva dentro de la ruta indicada.

En caso de que desees restringir la búsqueda a un determinado tipo de archivo, primero andá a la ruta donde grep tenga que realizar la búsqueda.

cd /media/win/cosas

Luego, escribí algo similar a esto adaptándolo según tus necesidades:

grep -lir "usemos linux" *.pdf

Para más información te sugiero escribir man grep en un terminal. 🙂 ¡El manual no muerde!

Ambas herramientas buscan archivos de tipo texto plano que contienen el texto especificado. No sirven para buscar texto en archivos binarios, como los PDFs, DOCs, ODTs, etc. 🙁 En realidad, hay que hacer algo un poquito más complicado que seguramente publicaré en un futuro post. 🙂


16 comentarios

  1.   Leo dijo

    Bueno, me contesto a mi mismo 🙂
    grep -r “7005” * –include=*.xml

    se puede usar –include o –exclude con -r

    😀

    1.    David dijo

      Que tal Leo, a mi me funcionó así (con doble “-” para el include):
      grep -r “7005” * –include=*.xml

      Saludos

  2.   Leo dijo

    Un detalle, en el último ejemplo: grep -lir “usemos linux” *.pdf , si uso *.xml (por ejemplo) no busca recursivamente, sino que busca el directorio con la forma *.xml y no en todos los archivos *.xml que hayan en los subdirectorios. Estaba buscando justamente la solución a esto, ¿alguien sabe?
    Se podría usar simplemente el * pero eso incluye a todos los archivos, esto quiero evitar.

  3.   Hernando dijo

    muy bn.

  4. Perfecto, claro y bien explicado.
    Como mejora indicar que en el comando
    grep -lir “usemos linux” “/media/win/cosas”
    sobran las comillas debiendo quedar del siguiente modo
    grep -lir “usemos linux” /media/win/cosas
    Saludos

  5.   Usemos Linux dijo

    Exacto. Le puse las comillas por si a alguien se le ocurría reemplazar mi ejemplo por una ruta que incluyera espacios. Me adelanté a un futuro reclamo: che, no me funciona!! Jaja…
    De todas formas, es cierto lo que decís. En el ejemplo las comillas sobran pero si quieren ingresar una ruta que incluya espacios deben poner comillas.
    Hecha la salvedad. Saludos y muchas gracias x comentar!

  6.   freesiete dijo

    Excelente aporte, muy bien explicado: sencillo y fácil de seguir. Esperando ese futuro post que anuncias al final.
    Saludos

  7.   Usemos Linux dijo

    Sí, ya lo agregué a mi lista de pendientes! 🙂
    Saludos! Pablo.

  8.   Fernando dijo

    Muy bueno! realmente util y funciona fenomenal!

    Gracias!

  9.   Gustavo Mennichelli dijo

    Estimados, viendo el contenido de sus comentarios que me resultan alentadores decidí pedirles ayuda con el video de ni lenovo T430 estoy usando linux Mint desde la version 9 ahora instale la version 17 KDE y tengo problemas con la resolucion de video no puedo utilizar los 1920×1080 que tiene la placa. pueden ayudarme?
    Gracias

  10. ok tio gracias me sirvio!!! salu2

  11.   Guille dijo

    Estos detalles son los que tiran por tierra los maravillosos sistemas libres, ¿en el año 2015 y todavía no se puede hacer una búsqueda por texto desde el navegador de archivos? Y lo peor es que recuerdo que hace unos 10 años sí se podía, ¿por qué vamos hacia atrás en algunas cosas tan básicas?
    Sí, un simple comando, sí, es libre tienes el código y demás, pero creo que este tipo de detalles marcan a un usuario novato que se acerque al mundo de gnu/linux.

    1.    Morgul dijo

      Estamos hablando de buscar contenido dentro de los archivos, no filtrarlos por nombre 🙂

  12.   Ezequiel dijo

    Siempre viene bien tener agendado este tipo de posts 😉

  13.   WolfMaxs dijo

    En MacOSX puedes ejecutar este comando: (Supongo que en Linux también estará, pues el Linux y el MacOSX son familia, “hermanitos”.)

    mdfind -onlyin [ruta del directorio donde buscaremos] query [“texto a buscar”]
    las comillas utilizad-las para un texto con espacios. 😉

    por ejemplo:
    mdfind -onlyin Documentos query curriculum

  14.   Hernan dijo

    estos comandos y su gran utilidad y que lo compartan de forma tan sencilla, salvan la patria.!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.