GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Casi todos los administradores de archivos para Linux como Nemo y Thunar por defecto proporciona una opción para buscar archivos. Pero si desea buscar una cadena dentro del contenido de un archivo usando el administrador de archivos, la mayoría de ellos no le permiten hacerlo.

En este artículo, discutiré las diferentes formas que puede usar en cualquier distribución de Linux para encontrar todos los archivos que contienen cadenas de texto o palabras específicas al buscar recursivamente en todos los subdirectorios.

En esta página

  • Buscar texto específico en Linux usando la herramienta GUI de Catfish
  • Buscar texto específico en Linux usando el comando Grep
  • Buscar texto específico en Linux usando MC (Midnight Commander)

Buscar texto específico en Linux usando la herramienta GUI de Catfish

Comenzaré con la forma más fácil que puede funcionar para todos, incluidos los principiantes y los usuarios avanzados de Linux. Bagre es una herramienta de búsqueda de archivos basada en GUI simple y liviana para escritorios Linux. Además de buscar archivos en su sistema, también puede usarlo para encontrar todos los archivos que contienen una palabra en particular.

[ También te puede interesar:Cómo encontrar archivos basados ​​en la marca de tiempo en Linux ]

Instalar la herramienta de búsqueda Catfish en Linux

El bagre El paquete ya está disponible en los repositorios principales de Debian y Ubuntu. Por lo tanto, si está utilizando distribuciones basadas en Debian o Ubuntu, simplemente puede instalarlo ejecutando el comando:

$ sudo apt install catfish  [On Debian/Ubuntu & Mint]

En otras distribuciones de Linux, puede instalarlo desde los repositorios predeterminados usando su administrador de paquetes.

$ sudo yum install catfish  [On CentOS/RHEL 7]
$ sudo dnf install catfish  [On CentOS/RHEL 8 & Fedora]
$ sudo pacman -S catfish    [On Arch Linux]
$ sudo pkg_add -v catfish   [On FreeBSD]

Si el paquete no está disponible, puede descargar el archivo de la versión más reciente, extraer el archivo tar.bz2 descargado y ejecutar el siguiente comando:

$ sudo python3 setup.py install

Buscar contenidos de archivos usando Catfish

Una vez instalado, solo debe habilitar “Buscar contenido del archivo ”, seleccione directorios de la opción desplegable superior izquierda y escriba el texto que desea buscar. Enumerará todos los archivos que contienen texto junto con el tamaño y la ubicación del archivo.

También puede usar el tipo de archivo y el filtro de fecha modificada del panel izquierdo para reducir el alcance de la búsqueda. Incluso puede agregar una ruta de directorio donde no desea buscar.

Buscar texto específico en Linux usando el comando Grep

Junto a la GUI camino, grep es una de las herramientas de línea de comandos populares que se pueden usar para buscar dentro del contenido del archivo. Dado que casi todos los sistemas operativos similares a Unix incluyen grep utilidad de forma predeterminada, no necesita instalarla.

Buscar texto particular en archivos

Ahora, para buscar y encontrar todos los archivos para una cadena de texto determinada en una terminal de Linux, puede ejecutar el siguiente comando. Aquí, el '-r' o '-R' flag busca recursivamente a través de todos los subdirectorios dentro del directorio especificado.

$ grep -r “linuxshelltips” /home/sarvottam/

Encuentre nombres de archivo que contengan una cadena determinada

Si desea imprimir solo los nombres de los archivos y ocultar el texto de la salida, puede usar el '-l' bandera.

$ grep -rl “linuxshelltips” /home/sarvottam/

Imprimir nombres de archivos y números de línea que contienen una cadena determinada

Además, también puede modificar la salida usando las siguientes opciones disponibles para grep :

  • 'i' para mayúsculas y minúsculas.
  • 'n' para imprimir el número de línea.
  • 'w' para que coincida con la palabra completa.
$ sudo grep -rnwi “linuxshelltips” /home/sarvottam/

También vale la pena mencionar que si busca en directorios que requieren permisos de root, debe usar el comando sudo.

Buscar texto específico en tipos de archivos específicos

Para reducir aún más el alcance de la búsqueda, también puede mencionar específicamente el tipo de archivo y directorios para buscar solo durante la búsqueda. “--include” , “--exclude” y “--exclude-dir” son las opciones disponibles para agregar tipo de archivo y filtro de directorio.

$ grep --include=\*.txt --exclude=\*.{java,js} --exclude-dir=\bin -rnwi "linuxshelltips" /home/sarvottam/

Buscar texto específico en Linux usando MC (Midnight Commander)

Si vive en una terminal y aún desea buscar texto utilizando la GUI, también puede probar la herramienta de administración de archivos basada en la interfaz de usuario de terminal (TUI), mc (comandante de medianoche ) – es un administrador de archivos visual que se utiliza para buscar archivos.

Instalar Midnight Commander en Linux

El comandante de medianoche está disponible para instalar desde los repositorios predeterminados en la mayoría de las distribuciones de Linux.

$ sudo apt install mc  [On Debian/Ubuntu & Mint]
$ sudo yum install mc  [On CentOS/RHEL 7]
$ sudo dnf install mc  [On CentOS/RHEL 8 & Fedora]
$ sudo pacman -S mc    [On Arch Linux]
$ sudo pkg_add -v mc   [On FreeBSD]

Buscar contenidos de archivos con Midnigh Commander

Dentro de la terminal, mc proporciona una representación visual del sistema de archivos en el que puede navegar con el teclado o el mouse. Para buscar contenido de archivo, puede abrir un cuadro de diálogo de búsqueda usando ALT+SHIFT+? e ingrese el texto en el “Content:” sección.

Como puede ver en la imagen de arriba, también puede usar filtros como ignorar mayúsculas y minúsculas, palabras completas y expresiones regulares simplemente marcándolas y desmarcándolas.

Conclusión

Todas las aplicaciones mencionadas anteriormente son amigables para principiantes, de uso gratuito y de código abierto para agregar sus propias mejoras. Alternativamente, también puede probar otras herramientas gratuitas como Ack, The Silver Searcher, Ripgrep y find command.


Linux
  1. Cómo encontrar un archivo en Linux

  2. ¿Cómo buscar en archivos específicos que coincidan con un patrón?

  3. Cómo encontrar texto específico usando GREP en Linux

  4. ¿Cómo encontrar archivos de texto que no contengan texto en Linux?

  5. Cómo encontrar líneas que contienen una cadena en Linux

Cómo encontrar una cadena en un archivo en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo encontrar y eliminar archivos que contienen un texto específico en sus nombres en Linux

Cómo encontrar archivos basados ​​en la marca de tiempo en Linux

Cómo encontrar archivos modificados en las últimas 24 horas en Linux

Cómo comprimir un archivo en Linux