Cómo usar GREP para buscar recursivamente

Cómo usar GREP para buscar recursivamente
La instrucción "GREP" ha sido muy conocida entre los usuarios de Linux por sus capacidades de búsqueda. La consulta "GREP" funciona de manera diferente mientras se usa con diferentes banderas para la búsqueda recursiva. La bandera más utilizada del comando GREP es "-r", lo que implica buscar en el directorio actual. Tengamos algunos ejemplos de hacer una búsqueda recursiva en Ubuntu 20.04 usando el comando GREP. Comience desde el lanzamiento de la aplicación terminal a través de la tecla de acceso directo "Ctrl+Alt+T".

Buscar sin ruta de directorio

La forma más simple y más fácil para la búsqueda recursiva es usar un indicador "-r" simple dentro del comando GREP y un patrón de coincidencia sin ninguna ruta mencionada. Hemos estado utilizando el comando GREP para buscar un patrón "John" dentro de los archivos. El indicador "-r" buscará todos los archivos ubicados dentro del directorio de inicio o actual de Ubuntu 20.04 y en las subcarpetas del directorio de inicio también. Puede ver que muestra las rutas del archivo que tienen la coincidencia particular y muestra el texto coincidente dentro de ese archivo también. Los dos primeros archivos se encuentran dentro del subdirectorio de documentos de la carpeta de inicio, mientras que los otros dos están ubicados en el directorio de inicio. Esto significa que también ha buscado desde cada subcarpeta del directorio actual.

$ Grep -R "John"

Busquemos recursivamente otra palabra, "corazón" utilizando la instrucción GREP con la bandera "-r". La salida del comando muestra que se ha encontrado en los dos archivos. Un archivo reside dentro del directorio de inicio, mientras que el otro está en el subdirectorio del hogar, yo.mi., Documentos. Ambos archivos contienen el mismo nombre.

$ GREP -R "Corazón"

Echemos un vistazo a otra misma instancia con un patrón de coincidencia diferente dentro del comando GREP. Por lo tanto, hemos estado utilizando el patrón "CSS" para buscar desde el sistema de forma recursiva.

$ GREP -R "CSS"

Otra forma es usar el signo "*" para buscar en todas las carpetas y subcarpetas. Entonces, hemos buscado el personaje simple "A" y lo encontramos en cada archivo de texto del directorio de inicio y sus subcarpetas.

$ Grep -r "A" *

Tengamos una búsqueda recursiva usando el comando GREP pero de una manera diferente. Buscaremos un patrón mientras el texto en los archivos no se mostrará en el terminal utilizando el indicador "-l" en las instrucciones. Solo se dará el nombre o ruta del archivo en la salida que muestra que se ha encontrado el patrón dado. Entonces, hemos probado la misma consulta con la adición de la bandera "-l" para buscar el patrón "CSS". Muestra los archivos relacionados y sus rutas en la salida.

$ GREP -R -L "CSS"

Buscar con la ruta del directorio

Ahora, veremos el funcionamiento del comando recursivo GREP en la ruta del directorio dada. Entonces, habremos buscado tres patrones diferentes dentro de las "descargas" del subdirectorio de la carpeta de inicio. La ruta a las carpetas de descargas se ha establecido en la imagen dentro del comando GREP. No tenemos nada a cambio ya que el patrón no ha coincidido o ha sido encontrado.

$ Grep -r CDD/Home/Linux/Descargas
$ Grep -r CSS/Home/Linux/Descargas
$ Grep -r Poet/Home/Linux/Descargas

Busquemos otro patrón "es" dentro de la carpeta de descargas utilizando la misma instrucción. Hemos encontrado dos salidas para este patrón. La salida muestra las rutas del archivo junto con el texto. También resaltó el patrón coincidente, yo.mi., "es".

$ GREP -R IS/HOME/LINUX/Descargas

Hemos buscado otro patrón, "OK" dentro de la carpeta de descargas y obtuvimos solo 1 salida a cambio, ya que solo coincide con un solo archivo.

$ GREP -R OK/HOME/LINUX/Descargas

El mismo patrón "OK" ha sido buscado desde el diferente subdirectorio esta vez, yo.mi., Documentos. El comando GREP no devolvió nada ya que la carpeta no contiene ningún archivo con un patrón particular "OK" dentro de él.

$ grep -r is/home/linux/documentos

También puede buscar recursivamente para el valor de cadena. Entonces, hemos proporcionado la dirección IP como una cadena y mencionamos la ruta. Este comando buscará todos los archivos y carpetas del directorio "etc" para buscar el patrón de cadena. La salida muestra un solo resultado.

$ GREP -R "192.168.10.1 " /etc /

Buscar múltiples patrones

Habíamos visto los ejemplos para buscar el patrón único utilizando la instrucción recursiva de GREP. Ahora, veremos la forma de buscar múltiples patrones también recursivamente. Entonces hemos estado utilizando el comando GREP junto con la bandera "-RW". Indica que las múltiples búsquedas han sucedido. Después de esta bandera, también puedes mencionar el camino. Lo hemos estado usando sin la ruta de búsqueda dentro del directorio de inicio y sus subcarpetas. La bandera "-e" se ha utilizado aquí para indicar el patrón único. Puede usar muchas banderas "-e" de acuerdo con la cantidad de patrones que desea buscar. Hemos buscado solo dos patrones aquí usando "-e". Hemos encontrado los 4 archivos en la salida coincidentes. Tres archivos contienen el patrón "CSS", y 1 contiene el patrón "OK" dentro de.

$ grep -rw -e ok -e css

También puede utilizar el comando GREP para buscar múltiples patrones dentro del archivo específico. Para esto, debe eliminar la bandera "-RW" de la consulta y agregar banderas "-e" tanto como desee. Pero debe mencionar el nombre del archivo al final, como se demuestra a continuación. Muestra todo el texto del archivo y resalta el patrón de coincidencia.

$ Grep -e "Great" -e "CSS" -e "is" -e "corazón" nuevo.TXT

Buscar con la bandera "incluir"

La palabra clave de incluir el indicador se ha utilizado para especificar los tipos de archivos que solo se están buscando. No se buscarán otros archivos. Entonces, en el primer caso, no pudimos obtener nada.

$ GREP -R -Include = "*txt" "Ok"/Home/Linux/
$ Grep -r -include = "*txt" "nuevo"/home/linux/

Dentro de nuestro segundo caso, hemos encontrado una sola salida.

Otro patrón, "CSS" se ha utilizado para la búsqueda recursiva y obtuvo tres resultados, como se demuestra en la imagen.

$ Grep -r -include = "*txt" "CSS"/Home/Linux/

Conclusión

La búsqueda recursiva se ha demostrado dentro de esta guía utilizando el comando GREP. El comando "GREP" ha usado muchas banderas para funcionar de manera diferente mientras realiza una búsqueda recursiva, yo.mi., "-R" e "incluir". El tutorial también explica la búsqueda recursiva con y sin las rutas de directorio dadas en el comando GREP. Por lo tanto, este artículo contiene un paquete de ejemplos fáciles de hacer para que sus usuarios aprendan la búsqueda recursiva más fácilmente.