GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo usar el comando grep en Debian 10

Grep significa impresión de expresión regular global. Es un comando útil y ampliamente utilizado por los ingenieros de sistemas Linux al buscar una cadena o patrones en archivos normales y en el sistema.

En este artículo, demostraré el uso del comando grep con una gran cantidad de ejemplos. He probado todos los comandos y ejemplos en una máquina Debian 10.

Requisito previo

Debe tener una sola máquina Debian 10 con privilegios de root.

Instalación del comando grep en Debian 10

De forma predeterminada, grep está instalado en la mayoría de los sistemas, incluido Debian 10. Si no está instalado, abra la terminal y emita el siguiente comando con privilegios de root.

apt-get install grep

Cuando se le solicite una confirmación, presione y y luego ingrese desde el teclado. Espere a que finalice la instalación.

Dado que grep ya estaba instalado en mi máquina, verifique la captura de pantalla anterior. Verifiquemos su versión ejecutando el siguiente comando en la terminal.

grep --version

También debería devolver la versión junto con otros detalles, como se muestra a continuación.

Usando el comando grep

Una vez que tengamos el comando grep disponible en nuestra máquina, podemos jugar con él.

Buscar un archivo o directorio específico en su sistema

Cuando desee buscar o ubicar un archivo específico en su sistema, la sintaxis del comando debe ser la siguiente.

ls -l | grep -i “nombre de archivo o directorio”

Quiero buscar un directorio de red en /etc/. El comando completo debería tener el siguiente aspecto.

ls -l /etc/ | grep -i "network"

La opción 'i' ignora la distinción entre mayúsculas y minúsculas. Por lo tanto, debe tratar red, Red o RED como similar.

A continuación se muestra el resultado de muestra.

Supongamos que quiero buscar un archivo "interfaces.d" ubicado en /etc/network/, debe ejecutar el siguiente comando.

ls -l /etc/network/ | grep -i "interfaces.d"

Es necesario incluir la palabra que desea buscar entre comillas dobles si contiene espacios. Supongamos que estamos buscando "daemon de red", el comando anterior debería tener el siguiente aspecto.

ls -l /etc/red/ | grep -i “demonio de interfaces”

Buscando una palabra completa con grep

Es posible que haya notado que grep devolvió todo tipo de resultados que incluyen "red", p. redes, en red, redes o abcnetworking, etc. Si desea limitar su búsqueda para incluir esa palabra específica, debe usar la opción -w de la siguiente manera.

ls -l /etc/ | grep -i -w network

A continuación se muestra el resultado de muestra.

Buscar un texto específico en un archivo

Tenemos un caso cuando tienes un archivo grande y quieres buscar un texto específico. La sintaxis del comando debe ser la siguiente.

grep – i "texto que desea buscar" "nombre de archivo y ruta"

Supongamos que quiero buscar la palabra "fox" en test.txt que se encuentra dentro de mi directorio actual. Ejecute el siguiente comando en una terminal.

grep -i "fox" test.txt

A continuación se muestra la salida de muestra que devuelve solo aquellas líneas del archivo que contienen la palabra "fox".

Realizar una búsqueda recursiva (Búsqueda en varios archivos)

Si desea buscar un texto de una gran cantidad de archivos y subdirectorios dentro de un directorio, puede realizar una búsqueda recursiva utilizando la opción -r.

grep -i -r "fox"

A continuación se muestra el resultado de muestra que muestra que la palabra fox está presente en los archivos test.txt y tree.txt en la línea que se muestra.

También puede proporcionar una ruta de directorio y buscará todos los archivos en ese directorio y sus subdirectorios.

Supongamos que quiero realizar una búsqueda recursiva para las "interfaces" de texto en /etc/ y sus subdirectorios. El comando debe ejecutarse de la siguiente manera.

grep -i -r interfaces /etc/

A continuación se muestra el resultado de muestra.

Buscar dos palabras diferentes con un solo comando grep

Puede buscar dos palabras diferentes con un solo comando egrep (que es una variación de grep) de la siguiente manera. Supongamos que quiero buscar palabras completas fox y lazy en varios archivos usando la opción -r. Tienes que ejecutar el siguiente comando en la terminal.

egrep -w -r "fox|lazy"

A continuación se muestra el resultado de muestra.

Numeración de la línea que coincide con el texto

Otra opción útil es la -n que numera las líneas que coinciden con el texto. El siguiente es el ejemplo que ilustra cómo usar la opción -n.

grep -i -n "fox" test.txt

A continuación se muestra el resultado de muestra cuyos números y líneas coinciden con la palabra "fox".

Invertir la búsqueda

Esto es lo contrario de lo que hemos hecho anteriormente. Si desea devolver un texto que no incluye la palabra que especifica, puede utilizar la opción -v.

A continuación se muestra el ejemplo que demuestra el uso de la opción -v.

grep -v -i "fox" test.txt

A continuación se muestra el resultado de muestra.

Todas las opciones anteriores (-n, etc.) también se pueden aplicar con la opción -v.

Contando los partidos

Si solo desea contar el número de coincidencias con un texto específico, puede usar la opción -c.

Contemos la palabra "zorro" en test.txt ubicado dentro del directorio actual. Ejecute el siguiente comando en la terminal.

grep -i -c fox test.txt

A continuación se muestra el resultado de muestra después de ejecutar el comando anterior que muestra que la palabra zorro ha coincidido tres veces en el archivo test.txt.

Mostrar los nombres de archivo que coinciden con el texto específico

Si desea averiguar los archivos que contienen su palabra específica, puede usar la opción -l junto con -r  de la siguiente manera. Asumiendo que todos los archivos están ubicados dentro de su directorio actual y la palabra específica que está buscando o emparejando es 'zorro'.

grep -i -r -l fox

A continuación se muestra el resultado de muestra que muestra que la palabra fox está presente dentro de test.txt y en un subdirectorio y archivo asif.txt

Mostrar solo el texto coincidente

De forma predeterminada, grep muestra la línea completa que coincide con el texto o la palabra deseados. Si desea que grep le muestre las palabras coincidentes, puede usar la opción -o de la siguiente manera.

grep -i -o fox test.txt

A continuación se muestra el resultado de muestra.

Mostrar las líneas que comienzan con una(s) palabra(s) específica(s)

Si desea recuperar todas las líneas que comienzan con una palabra específica, puede usar el operador ^ de la siguiente manera.

Suponiendo que desea devolver todas esas líneas que comienzan con "unix" y el archivo es log.txt ubicado dentro de su directorio actual.

Ejecute el siguiente comando en la terminal.

grep -i "^unix" log.txt

A continuación se muestra el resultado de muestra.

Mostrar las líneas que terminan con la(s) palabra(s) específica(s)

Si desea devolver todas esas líneas de un archivo que termina con la(s) palabra(s) específica(s), puede usar el operador $ de la siguiente manera. Asumiendo que la palabra es "linux" y el archivo que desea buscar es rev.txt ubicado dentro de su directorio actual.

Ejecute el siguiente comando en la terminal.

grep -i "linux$" rev.txt

A continuación se muestra el resultado de muestra.

Conclusión

Este fue mi tutorial sobre el uso del comando grep. He demostrado la mayoría de las opciones de grep que se utilizan principalmente y que puede necesitar en su trabajo diario. Hay algunas variaciones del comando grep, incluido zgrep, etc. Puede explorarlas por su cuenta.


Debian
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando grep en Linux/UNIX

  3. Cómo usar el comando Grep para buscar texto en archivos

  4. Cómo usar el comando Su en Linux

  5. Cómo instalar Java 17 en Debian 11

Cómo usar el comando PS

Cómo usar el comando SUPERIOR

Cómo usar grep en Linux

Cómo instalar y usar MongoDB en Debian 11

Cómo instalar Tomcat 9 en Debian 11

Cómo instalar Apache en Debian 11