GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar una cadena o palabra específica en archivos y directorios

¿Desea encontrar todos los archivos que contienen una palabra o cadena de texto en particular en todo su sistema Linux o en un directorio determinado? Este artículo lo guiará sobre cómo hacerlo, aprenderá cómo buscar recursivamente en los directorios para encontrar y enumerar todos los archivos que contienen una cadena de texto determinada.

Una forma sencilla de resolver esto es mediante el uso de la herramienta de búsqueda de patrones grep, es una utilidad de línea de comandos poderosa, eficiente, confiable y más popular para encontrar patrones y palabras de archivos o directorios en sistemas similares a Unix.

Lea también :11 comandos avanzados de Linux 'Grep' en clases de caracteres y expresiones de paréntesis

El siguiente comando enumerará todos los archivos que contengan una línea con el texto “check_root ”, buscando recursiva y agresivamente en ~/bin directorio.

$ grep -Rw ~/bin/ -e 'check_root'

Donde el -R opción le dice a grep para leer todos los archivos en cada directorio, recursivamente, siguiendo enlaces simbólicos solo si están en la línea de comando y la opción -w le indica que seleccione solo aquellas líneas que contengan coincidencias que formen palabras completas, y -e se utiliza para especificar la cadena (patrón) que se buscará.

Debe usar el comando sudo cuando busque ciertos directorios o archivos que requieran permisos de root (a menos que esté administrando su sistema con la cuenta de root).

 
$ sudo grep -Rw / -e 'check_root'	

Para ignorar las diferencias entre mayúsculas y minúsculas, utilice -i opción como se muestra:

$ grep -Riw ~/bin/ -e 'check_root'

Si desea saber la línea exacta donde existe la cadena de texto, incluya el -n opción.

$ grep -Rinw ~/bin/ -e 'check_root'

Suponiendo que hay varios tipos de archivos en un directorio en el que desea buscar, también puede especificar el tipo de archivos que se buscarán, por ejemplo, por su extensión usando --include opción.

Este ejemplo le indica a grep que solo revise todos los .sh archivos.

$ grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'

Además, es posible buscar más de un patrón, usando el siguiente comando.

$ grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'

¡Eso es todo! Si conoce algún otro truco de línea de comandos para encontrar cadenas o palabras en archivos, compártalo con nosotros o haga cualquier pregunta sobre este tema, use el formulario de comentarios a continuación.


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

  2. Cómo encontrar y eliminar directorios y archivos vacíos en Unix

  3. Cómo encontrar y eliminar directorios y archivos vacíos en Linux

  4. Cómo enumerar recursivamente todos los archivos y directorios

  5. ¿Cómo enumerar tipos específicos de archivos en directorios recursivos en Shell?

Cómo usar sed para buscar y reemplazar cadenas en archivos

Cómo encontrar una cadena en un archivo en Linux

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

Cómo buscar y reemplazar texto, palabra o cadena en un archivo

Encuentre archivos y directorios en Linux fácilmente

Cómo realizar una búsqueda Grep en todos los archivos y en todos los directorios