Cómo buscar texto en varios archivos en Linux

Respuesta rápida

Buscar en archivos de texto: Use grep o ripgrep para texto sin formato, código, registros y archivos de configuración.
Buscar dentro de documentos: Use una aplicación de escritorio para PDF, Word, Excel, LibreOffice y más.
Si busca un archivo por su nombre: Use find o locate.

 

Probé una amplia variedad de comandos y aplicaciones para buscar archivos en Linux —muchos más que los incluidos aquí— y seleccioné los métodos más prácticos y eficaces. Probé los ejemplos en Ubuntu con la misma colección de archivos TXT, PDF, ODT, DOCX y de otros tipos utilizada en todo el artículo.

 

Use primero la tabla siguiente para elegir el método adecuado y, después, consulte la sección correspondiente.

 

 

¿Qué método de búsqueda en Linux debería usar?

 

El mejor método depende principalmente del tipo de archivos en los que necesite buscar.

 

Tarea Mejor opción
Buscar en archivos de texto con un comando estándar de Linux grep
Buscar rápidamente en archivos de texto de carpetas grandes ripgrep
Buscar un archivo por su nombre, no por su contenido find o locate
Buscar dentro de documentos PDF, Word, LibreOffice, Excel y otros SeekFast
Usar una herramienta gratuita y de código abierto para la búsqueda indexada de documentos Recoll o DocFetcher

 

Las herramientas grep y ripgrep buscan dentro de archivos de texto, mientras que find y locate buscan nombres y rutas de archivos. Estas herramientas son excelentes para archivos técnicos, pero no permiten buscar de manera fiable dentro de formatos de documentos complejos. Por eso, la respuesta adecuada para una carpeta llena de documentos es distinta de la indicada para una carpeta llena de registros o código.

 

 

Buscar texto en archivos con el comando grep

 

El comando grep es la herramienta estándar de Linux para buscar texto en archivos. Es la mejor opción para texto sin formato, código fuente, registros, archivos CSV, archivos Markdown y archivos de configuración.

 

Para buscar una palabra en los archivos .txt de la carpeta actual, use:

grep "budget" *.txt

 

Para buscar en una carpeta y en todas sus subcarpetas, use la búsqueda recursiva:

grep -R "budget" ~/Documents/stories

 

En la práctica, suelo añadir los números de línea y los nombres de archivo, porque hacen que los resultados sean más fáciles de usar:

grep -RIn "budget" ~/Documents/stories

 

Esto es lo que significan las opciones:

  • -R busca en las carpetas de forma recursiva.
  • -I omite los archivos binarios.
  • -n muestra los números de línea.
Recursive grep search for budget in text files on Linux, with an arrow highlighting the command

 

Búsqueda sin distinguir mayúsculas y minúsculas

Para ignorar las diferencias entre mayúsculas y minúsculas, añada -i:

grep -RIn -i "report" ~/Documents/stories

 

Esto permite encontrar "report", "Report" y "REPORT".

 

Buscar solo palabras completas

Para buscar una palabra completa, añada -w:

grep -RIn -w "policy" ~/Documents/stories

 

Esto evita coincidencias dentro de palabras más largas, como "policyholder".

 

Buscar solo determinados tipos de archivo

Para buscar únicamente en archivos con una extensión determinada, use --include:

grep -RIn --include="*.txt" "budget" ~/Documents/stories

 

Para varias extensiones, repita la opción:

grep -RIn --include="*.txt" --include="*.md" "budget" ~/Documents/stories

 

Esto resulta útil para las carpetas que contienen muchos tipos de archivo cuando solo quiere buscar en archivos basados en texto.

 

Excluir carpetas de la búsqueda

Las carpetas grandes suelen contener directorios en los que no quiere buscar, como archive, drafts o copias de seguridad. Puede excluirlos así:

grep -RIn --exclude-dir="archive" --exclude-dir="drafts" "risk" ~/Documents/stories

 

Esto mantiene los resultados más limpios y puede acelerar considerablemente la búsqueda.

 

Buscar una frase exacta o varias cadenas

Para buscar una frase exacta, escríbala entre comillas:

grep -RIn "sales report" ~/Documents/stories

 

Para buscar cualquiera de varias cadenas, añada una opción -e por cada cadena:

grep -RIn -e "sales" -e "budget" -e "payment" ~/Documents/stories

 

También puede usar expresiones regulares extendidas con -E:

grep -RInE "customer|product|service" ~/Documents/stories

 

Ambos comandos encuentran una línea que contenga al menos una de las cadenas. Si necesita archivos que contengan tanto "sales" como "payment", incluso en líneas distintas, filtre los nombres de archivo en dos pasos:

grep -RIlZ "sales" ~/Documents/stories | xargs -0 -r grep -Il "payment"

grep search for sales, budget, and payment with file and directory filters on Linux

Estos son los casos de uso más habituales del comando grep. Para consultar la referencia completa, vea el manual de GNU grep.

 

Cuando grep no es suficiente

El comando grep es potente, pero sigue siendo una herramienta de búsqueda en texto sin formato. Suele funcionar bien con archivos almacenados como texto legible. No es una buena solución general para documentos de Word, hojas de cálculo de Excel, archivos de LibreOffice, PDF, libros electrónicos u otros formatos de documentos.

 

Si intenta usar grep en una carpeta llena de documentos de distintos tipos, a menudo pasará por alto coincidencias importantes u obtendrá resultados ilegibles. En esos casos, vaya directamente a las herramientas de búsqueda de documentos.

 

 

Usar ripgrep para realizar búsquedas más rápidas desde la línea de comandos

 

La herramienta ripgrep, que normalmente se ejecuta como rg, es una herramienta moderna de búsqueda desde la línea de comandos. La guía oficial de ripgrep explica que busca en los directorios de forma recursiva de manera predeterminada y aplica filtrado automático. Para búsquedas recursivas en carpetas grandes de código y texto, suele ser más rápida que el comando grep estándar.

 

Para buscar en la carpeta actual y sus subcarpetas, use:

rg "budget"

 

Para buscar en una carpeta específica:

rg "budget" ~/Documents/stories

 

Para buscar solo en determinados tipos de archivo:

rg "budget" -g "*.txt" ~/Documents/stories

 

La herramienta ripgrep también respeta .gitignore de forma predeterminada, lo que resulta útil en proyectos de código fuente porque omite automáticamente muchos archivos generados o irrelevantes.

 

Use ripgrep cuando busque en código, registros, Markdown, archivos de configuración u otro texto sin formato. Para documentos PDF, Word, LibreOffice, Excel y de otros tipos, utilice una herramienta de búsqueda de documentos.

ripgrep search for sales, marketing, and customer in a Linux folder

 

¿Cuál debería usar: grep o ripgrep?

Ambas herramientas buscan contenido de texto sin formato, pero se adaptan a flujos de trabajo ligeramente diferentes:

  • Use grep si quiere un comando estándar que ya está disponible en casi todos los sistemas Linux.
  • Use ripgrep para realizar búsquedas recursivas rápidas en repositorios de código y carpetas grandes de texto.
  • La herramienta ripgrep busca en las subcarpetas de forma predeterminada y respeta .gitignore, mientras que el comando grep requiere opciones recursivas y realiza una búsqueda más literal, a menos que excluya determinadas rutas.
  • Utilice una herramienta de búsqueda de documentos en lugar de cualquiera de estos comandos para PDF, Word, Excel, LibreOffice y otros formatos de documentos complejos.

 

Cómo instalar ripgrep en Ubuntu, Mint, Fedora, Debian y otras distribuciones de Linux

Los comandos de búsqueda de ripgrep son los mismos en todas las distribuciones de Linux. Solo cambia el comando de instalación según el gestor de paquetes. Los comandos siguientes se basan en las instrucciones oficiales de instalación de ripgrep.

 

Distribución Instalar ripgrep
Ubuntu, Linux Mint, Debian sudo apt install ripgrep
Fedora sudo dnf install ripgrep
openSUSE sudo zypper install ripgrep
Arch Linux sudo pacman -S ripgrep

 

 

Buscar archivos y directorios por nombre en Linux

 

Si conoce todo o parte del nombre de un archivo, use el comando find. El manual de GNU Findutils documenta sus filtros de nombre de archivo, fecha, tamaño y otros. El comando no busca el texto almacenado dentro de los archivos; para ello, use grep o ripgrep.

 

Para buscar archivos cuyos nombres contengan una palabra determinada en la carpeta stories y sus subcarpetas, use:

find ~/Documents/stories -type f -iname "*profit*"

 

Use -iname para encontrar coincidencias parciales sin distinguir entre mayúsculas y minúsculas:

find ~/Documents/stories -type f -iname "*shopping*"

 

Los asteriscos coinciden con cualquier carácter situado antes o después de "shopping". Para buscar un directorio en lugar de un archivo, cambie -type f por -type d:

find ~/Documents/stories -type d -iname "*archive*"

 

También puede filtrar los archivos por extensión, fecha de modificación o tamaño:

find ~/Documents/stories -type f -iname "*.pdf"

find ~/Documents/stories -type f -mtime -7

find ~/Documents/stories -type f -size +100M

 

Estos comandos encuentran, respectivamente, archivos PDF, archivos modificados aproximadamente durante los últimos siete días y archivos de más de 100 MB.

 

Buscar archivos más rápidamente con locate

El comando locate busca en una base de datos de nombres de archivo en lugar de analizar el sistema de archivos cada vez, por lo que las búsquedas de nombres suelen ser mucho más rápidas que con find. El manual de plocate explica cómo funciona esta búsqueda indexada:

locate -i "profit"

 

Como locate utiliza un índice, es posible que los archivos muy recientes no aparezcan hasta que se actualice la base de datos. En los sistemas donde tenga permiso para actualizarla, use:

sudo updatedb

 

Use find cuando necesite resultados actuales o filtros detallados. Use locate cuando quiera la forma más rápida de buscar un nombre de archivo existente en ubicaciones indexadas.

Comparison of find and locate commands for filenames containing profit on Linux

 

Qué busca realmente cada método de búsqueda de LinuxCada herramienta busca en capas distintas de sus archivos.
Four searchable layers in Linux with find, locate, grep, ripgrep, SeekFast, Recoll, DocFetcher, and ChatGPT

 

Las mejores herramientas de búsqueda de documentos para Linux

 

Las herramientas grep y ripgrep están diseñadas para texto sin formato. Para buscar en archivos PDF, Word, Excel, LibreOffice, libros electrónicos y otros formatos, use una de las siguientes aplicaciones de búsqueda de documentos; los PDF escaneados que solo contienen imágenes requieren primero un proceso de OCR.

 

SeekFast es una excelente opción cuando quiere buscar en carpetas que contienen diferentes tipos de documentos, obtener una vista previa de las frases coincidentes y ver resultados ordenados por relevancia sin trabajar en el terminal. Resulta especialmente práctico cuando necesita buscar en una carpeta nueva o que cambia con frecuencia.

 

Recoll y DocFetcher son buenas opciones si prefiere software gratuito y de código abierto y no le importa crear previamente un índice. La indexación requiere cierta preparación, pero puede hacer más prácticas las búsquedas repetidas en una colección de documentos consolidada.

 

La aplicación de escritorio de ChatGPT adopta un enfoque diferente. Puede trabajar con las carpetas que elija, responder preguntas formuladas en lenguaje natural, comparar archivos y resumir los resultados. Es mejor utilizarla como complemento cuando necesita comprender la información, en lugar de como única herramienta para realizar búsquedas exhaustivas de coincidencias exactas.

 

 

SeekFast

 

SeekFast es una herramienta de búsqueda de documentos para Windows, macOS y Linux. Está diseñada para buscar dentro de grandes colecciones de documentos, en lugar de limitarse a buscar en archivos de texto sin formato desde el terminal.

 

Su principal ventaja es la comodidad. Seleccione una carpeta, escriba las palabras de búsqueda y verá las frases coincidentes antes de abrir cada archivo. Esto resulta útil cuando no conoce el nombre exacto del archivo y necesita buscar dentro de muchos documentos.

SeekFast search for company and sales across PDF, TXT, and DOCX files on Linux

SeekFast resulta especialmente útil cuando la carpeta contiene documentos de distintos tipos, ya que puede buscar dentro de numerosos formatos y ordenar los resultados por relevancia. Esto hace que la experiencia se parezca más a una búsqueda web que a una búsqueda tradicional de coincidencias exactas en archivos.

 

Entre sus principales funciones se incluyen:

  • Búsqueda de documentos - busque en más de 120 formatos de archivo compatibles, incluidos PDF, Word, LibreOffice, Excel, archivos de texto y libros electrónicos.
  • Vista previa de frases coincidentes - vea el texto relevante antes de abrir el archivo.
  • Resultados ordenados por relevancia - los archivos con mejores coincidencias aparecen más arriba en los resultados.
  • Búsqueda de varias palabras clave - encuentre documentos aunque las palabras no estén una junto a otra.
  • Flujo de trabajo gráfico - no es necesario crear comandos de terminal para las tareas habituales de búsqueda de documentos.

 

Ventajas

  • Mucho más práctico que grep para carpetas con documentos reales.
  • Funciona bien cuando recuerda palabras del documento, pero no el nombre del archivo.
  • Muestra el contexto, por lo que puede evaluar los resultados antes de abrir los archivos.
  • Resulta útil para carpetas mixtas con PDF, archivos de Office, LibreOffice, texto y otros formatos.

 

Desventajas

  • La versión gratuita de SeekFast está limitada a la búsqueda en un máximo de 50 archivos a la vez.
  • No está diseñada para sustituir a grep o ripgrep en las búsquedas de código fuente.
  • No admite flujos de trabajo avanzados con expresiones regulares como las herramientas especializadas de línea de comandos.

 

Si su tarea principal es buscar dentro de muchos documentos en lugar de buscar en código o archivos de registro, descargue SeekFast y pruébelo con una de sus carpetas de documentos.

 

 

Recoll

 

Recoll es una herramienta gratuita y de código abierto para realizar búsquedas desde el escritorio en Linux y otros sistemas similares a Unix. Utiliza un índice, lo que significa que primero analiza las carpetas que seleccione y después permite realizar búsquedas rápidas en ellas.

Recoll search results for business across TXT, PDF, and DOCX files on Linux

La compatibilidad con algunos formatos de documentos depende de las aplicaciones auxiliares instaladas en el sistema. Es una buena opción si quiere una herramienta de código abierto para realizar búsquedas indexadas desde el escritorio y no le importa dedicar algo de tiempo a configurarla.

 

Ventajas

  • Gratuita y de código abierto.
  • Funciona bien como herramienta de búsqueda indexada desde el escritorio de Linux.
  • Puede buscar en numerosos formatos de documentos con los programas auxiliares adecuados.

 

Desventajas

  • La indexación y configuración iniciales pueden llevar tiempo.
  • El flujo de trabajo puede resultar técnico para usuarios ocasionales.
  • La compatibilidad con formatos de documentos puede depender de los paquetes instalados en el sistema.

 

 

DocFetcher

 

DocFetcher es una aplicación de escritorio gratuita y de código abierto para realizar búsquedas en Linux, Windows y macOS. DocFetcher Pro es una versión de pago independiente con funciones adicionales. Al igual que Recoll, funciona mediante la creación de índices para las carpetas que seleccione.

DocFetcher search results for business with a matching document preview on Linux

DocFetcher admite formatos de documentos habituales como PDF, Microsoft Office, OpenDocument, HTML y texto sin formato. Puede ser útil si quiere una herramienta multiplataforma gratuita y no le importa crear índices antes de realizar las búsquedas.

 

Ventajas

  • La edición estándar de DocFetcher es gratuita y de código abierto.
  • Está disponible para Linux, Windows y macOS.
  • Puede mostrar vistas previas del texto de los documentos indexados.

 

Desventajas

  • Es necesario crear un índice antes de poder buscar en el contenido de una carpeta.
  • La interfaz parece más antigua que la de muchas herramientas de búsqueda modernas.
  • Resulta menos práctica si suele buscar en carpetas puntuales sin preparar un índice.

 

 

 

La aplicación de escritorio de ChatGPT está disponible en versión preliminar para las distribuciones de Linux compatibles. No es un programa tradicional de búsqueda de archivos. Es un espacio de trabajo con IA que puede trabajar con los archivos de las carpetas que seleccione.

 

Para utilizarla con archivos locales, abra una carpeta local en ChatGPT Work o Codex y conceda acceso a los archivos que quiera usar. Después podrá formular preguntas en lenguaje natural, como:

  • "Busca los documentos que tratan sobre riesgos empresariales".
  • "Compara los informes de ventas y muestra las diferencias más importantes".
  • "Busca la información relacionada con este proyecto y resúmela".
Codex in the ChatGPT desktop app summarizing business risks from local files on Linux

Este enfoque resulta especialmente útil cuando no recuerda las palabras exactas. ChatGPT puede ayudarle a buscar por significado, relacionar información de varios archivos, resumir lo que encuentra y explicar los resultados. Codex también puede buscar y analizar proyectos de código fuente.

 

Ventajas

  • Acepta preguntas formuladas en lenguaje natural, en lugar de limitarse a palabras clave o expresiones regulares.
  • Puede resumir, comparar e interpretar información de varios archivos.
  • Resulta útil cuando el siguiente paso consiste en comprender los resultados, no solo en localizar una frase.

 

Desventajas

  • No está diseñada para garantizar que se encuentren todas las coincidencias exactas, por lo que debe usar grep o ripgrep cuando sea importante obtener resultados completos.
  • No ofrece el mismo flujo de trabajo especializado de búsqueda indexada que SeekFast, Recoll o DocFetcher.
  • La versión para Linux todavía está en fase preliminar y oficialmente solo admite determinadas distribuciones.
  • Requiere una cuenta de ChatGPT y utiliza servicios en línea, en lugar de funcionar por completo sin conexión. Consulte cómo utiliza OpenAI los datos de ChatGPT y Codex y revise sus requisitos de privacidad antes de usarla con documentos confidenciales.

 

Use ChatGPT como complemento de las herramientas de búsqueda convencionales: grep y ripgrep son mejores para realizar búsquedas de texto exacto; las aplicaciones de búsqueda de documentos son mejores para explorar colecciones con resultados predecibles; y ChatGPT resulta útil cuando quiere comprender, comparar o resumir la información encontrada.

 

 

Conclusión

 

En este artículo he compartido los métodos que mejor funcionaron en mis pruebas para buscar archivos y su contenido en Linux. Sin embargo, los usuarios de Linux suelen tener sus propias herramientas y flujos de trabajo favoritos. ¿Qué método utiliza usted? ¿He pasado por alto algún comando o aplicación útil?

 

Puede compartir su experiencia de una de las siguientes maneras:

 

 

Preguntas frecuentes

 

1. ¿Cómo busco un archivo por su nombre en Linux?
Use el comando find. Por ejemplo:

find ~/Documents/stories -type f -iname "*profit*"

Este comando busca en la carpeta stories y sus subcarpetas nombres de archivo que contengan "profit", sin distinguir entre mayúsculas y minúsculas.

 

2. ¿Cuál es la diferencia entre find y grep?
El comando find busca nombres, rutas y propiedades de archivos. El comando grep busca texto almacenado dentro de archivos de texto sin formato. Si conoce el nombre del archivo, use find; si recuerda palabras del archivo, use grep o una herramienta de búsqueda de documentos.

 

3. ¿Debería usar find o locate?
Use find para obtener resultados actuales y aplicar filtros detallados. Use locate para buscar más rápidamente nombres de archivo en un índice creado previamente. Es posible que los archivos recién creados no aparezcan en locate hasta que se actualice su base de datos.

 

4. ¿Cómo busco texto en todos los archivos de una carpeta de Linux?
El comando grep -R es la opción estándar. Por ejemplo:

grep -RIn "budget" ~/Documents/stories

Funciona mejor con archivos de texto sin formato, código fuente, registros y archivos de configuración.

 

5. ¿Cómo busco también en las subcarpetas?
Use la búsqueda recursiva con grep -R:

grep -RIn "budget" ~/Documents/stories

Este comando busca en la carpeta stories y sus subcarpetas, omite los archivos binarios y muestra los números de línea.

 

6. ¿Cómo busco solo en determinados tipos de archivo?
Use --include. Por ejemplo:

grep -RIn --include="*.txt" "budget" ~/Documents/stories

Puede repetir --include para varias extensiones.

 

7. ¿Cómo excluyo carpetas de una búsqueda con grep?
Use --exclude-dir. Por ejemplo:

grep -RIn --exclude-dir="archive" --exclude-dir="drafts" "risk" ~/Documents/stories

 

8. ¿Cómo busco varias palabras posibles?
Añada una opción -e por cada cadena. Por ejemplo:

grep -RIn -e "sales" -e "budget" -e "payment" ~/Documents/stories

Este comando encuentra líneas que contienen cualquiera de las cadenas.

 

9. ¿Es ripgrep mejor que grep?
La herramienta ripgrep suele ser más rápida y práctica para realizar búsquedas recursivas en carpetas grandes de código y texto, mientras que el comando grep está disponible de forma predeterminada en casi todos los sistemas Linux y es ideal para búsquedas de texto habituales. Ninguna de las dos es una herramienta general de búsqueda de documentos.

 

10. ¿Por qué grep no encuentra texto dentro de mis archivos PDF o Word?
El comando grep está diseñado para texto sin formato. Los archivos PDF, Word, LibreOffice y Excel almacenan el texto en formatos más complejos, por lo que grep puede pasar por alto coincidencias o mostrar resultados ilegibles. Use una herramienta de búsqueda de documentos para esos archivos.

 

11. ¿Cuál es la mejor forma de buscar dentro de archivos PDF, Word y LibreOffice en Linux?
Use una herramienta de búsqueda compatible con formatos de documentos. SeekFast resulta práctico si quiere obtener vistas previas y resultados ordenados por relevancia. Recoll y DocFetcher son buenas alternativas de código abierto si prefiere una búsqueda indexada desde el escritorio.

 

12. ¿Funciona SeekFast en Linux?
Sí. SeekFast tiene una versión para Linux y permite buscar dentro de numerosos formatos de documentos mediante una interfaz gráfica.

 

13. ¿Debería usar grep, ripgrep o SeekFast?
Use grep para búsquedas habituales en texto sin formato. Use ripgrep para realizar búsquedas recursivas rápidas en carpetas de código y texto. Use SeekFast cuando necesite buscar dentro de documentos PDF, Word, LibreOffice, Excel y de otros tipos con vistas previas.

Sobre el autor
Dimitar Stamenov es un desarrollador de software y emprendedor afincado en Sofía, Bulgaria. Se graduó en Sofia University y trabaja profesionalmente en el desarrollo de software desde 2002. Es el fundador, director y desarrollador principal de Slaviana Soft, así como el creador de SeekFast. Entre sus otros proyectos de larga trayectoria se encuentran Preslav ERP y SEORanks. Dimitar ha impartido asignaturas relacionadas con el software y el SEO en Telerik Academy y Software University. Para el blog de SeekFast, prueba personalmente el software y los comandos sobre los que escribe, y se basa en su trabajo semanal ayudando a los usuarios a resolver problemas reales.

Dejar un comentario

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