GNU/Linux >> Tutoriales Linux >  >> Ubuntu

15 ejemplos del uso del comando Grep en Linux

Grep, o Global Regular Expression Print, es un comando de Linux extremadamente útil para encontrar patrones coincidentes. Puede examinar archivos y directorios, y también leer entradas de comandos. Busca con regex o expresiones regulares e imprime líneas desde un archivo que coincide con el patrón dado.

En esta publicación, veremos cómo usar el comando Grep en Linux. Los comandos discutidos aquí han sido probados en Ubuntu 20.04. Los mismos comandos Grep también funcionan para Debian, Mint, Fedora y CentOS.

Instalando el comando grep

La mayoría de las distribuciones de Linux, incluida Ubuntu 20.04 LTS, vienen con grep instalado. En caso de que su sistema no tenga Grep instalado, puede instalarlo usando el siguiente comando en la Terminal:

$ Sudo apt-get install grep

Sintaxis del comando Grep

La sintaxis básica del comando Grep es la siguiente:

$ grep [options] PATTERN [FILE...]

Uso del comando Grep

Encontrar una palabra en un archivo

Con Grep, puede buscar cualquier palabra en un archivo específico. La sintaxis sería:

$ grep <word> <filename>

Por ejemplo, el siguiente comando buscará la palabra "Donuts" en el archivo "Donuts.txt".

$ grep Donuts Donuts.txt

Encontrar una palabra en varios archivos

También puede buscar una palabra específica en varios archivos.

$ grep <word> <filename1> < filename2>

Por ejemplo, el siguiente comando buscará la palabra "Donuts" tanto en "Donuts.txt" como en "cakes.txt".

$ grep Donuts Donuts.txt cakes.txt

Ignorar caso

Grep realiza búsquedas que distinguen entre mayúsculas y minúsculas de forma predeterminada, lo que significa que trata "Donut" y "donuts" de manera diferente. Si volvemos a ejecutar el comando anterior con "donuts", esta vez no verá ningún resultado.

$ grep donuts Donuts.txt

Para ignorar el caso, deberá agregar "-i ” a tu comando así:

$ grep –i <word> <filename>

Encontrar un archivo por extensión en un directorio

También puede encontrar un archivo en un directorio específico por su extensión. Utilice la siguiente sintaxis para hacerlo:

$ ls ~/<directory> | grep .<file type>

Por ejemplo, para encontrar todos los archivos ".jpeg" en la carpeta "Descargas", el comando sería:

$ ls ~/Downloads | grep .jpeg

Líneas de impresión que no coinciden con un patrón

Con Grep, también puede imprimir las líneas que no coinciden con su patrón agregando “-v ” a tu mando. Utilice la siguiente sintaxis para hacerlo:

$ grep -v <word> <filename>

Por ejemplo, el siguiente comando imprimirá todas las líneas excepto la que contiene la palabra "Donuts".

Imprimiendo solo la palabra coincidente

Por defecto, grep imprime toda la línea que contiene el patrón. Para imprimir solo la palabra coincidente, agregue "-o ” a tus órdenes.

$ grep -o <word> <filename>

Por ejemplo, el siguiente comando imprimirá solo la palabra "Donuts" en lugar de imprimir la línea completa del archivo "Donuts.txt".

Número de línea de impresión del patrón y la línea coincidentes

Por defecto, grep imprime toda la línea que contiene el patrón. Para imprimir tanto el número de línea como la línea que contiene la palabra coincidente, agregue “-n ” a tus órdenes.

$ grep -n <word> <filename>

Por ejemplo, el siguiente comando imprimirá tanto el número de línea como la línea que contiene la palabra "Donuts".

$ grep -n Donuts Donuts.txt

Impresión de nombres de archivo que coinciden con un patrón

Para imprimir todos los archivos en su directorio actual que coincidan con su patrón, use la siguiente sintaxis:

$ grep -l “<word>” *

Por ejemplo, el siguiente comando imprimirá todos los archivos que contengan la palabra "Hola":

$ grep -l “Hello” *

Impresión de la palabra coincidente completa

Por defecto, grep imprime todas las palabras que coinciden con tu patrón, incluso si son parte de una palabra. Mira la imagen de abajo.

Buscamos la cadena “do ” y puede ver todas las líneas que contienen “do ”. Para que coincida con la palabra exacta, agregue "-w ” a tus órdenes.

$ grep –w <word> <filename>

Por ejemplo, para buscar la palabra exacta “do ” en el archivo Donuts.txt, el comando sería:

$ grep -w do Donuts.txt

Como puede ver, ahora solo imprime la línea que contiene la palabra exacta "do ”.

Líneas coincidentes que comienzan con una palabra en particular

Para imprimir líneas que comiencen con una palabra en particular, agregue "^ ” a tus órdenes.

$ grep ^<word> <filename>

Por ejemplo, el siguiente comando imprimirá todas las líneas que comienzan con “Th ”.

$ grep ^Th Donuts.txt

Líneas coincidentes que terminan con un patrón

Para imprimir líneas que terminen con un patrón en particular, agregue “$ ” a tus órdenes.

$ grep <word>$ <filename>

Por ejemplo, el siguiente comando imprimirá todas las líneas que terminen con “t ”.

$ grep t$ Donuts.txt

Líneas coincidentes que contienen ciertas letras

Si desea buscar líneas que tengan una o varias letras, use la siguiente sintaxis:

$ grep “[<letters>]” <filename>

Por ejemplo, el siguiente comando imprime todas las líneas que contienen cualquier letra de la "a" a la "f".

$ grep “[a-f]” Donuts.txt

Búsqueda recursiva

Para buscar todos los archivos en un directorio y subdirectorio para un patrón o palabra en particular, use:

$ grep -R <word> <path>

Por ejemplo, el siguiente comando mostrará una lista de todos los archivos que contienen la palabra "Hola" en el directorio Documentos. En el siguiente resultado, puede ver las rutas de los archivos junto con las palabras correspondientes.

$ grep -R “Hello” /home/maryam/Documents

Impresión de líneas específicas antes/después de las palabras coincidentes

De forma predeterminada, Grep imprime solo la línea que coincide con el patrón específico. Con -A opción en Grep, también puede incluir algunas líneas antes o después de las palabras coincidentes.

Líneas de impresión después del partido

Para imprimir las líneas que contienen las palabras coincidentes, incluida N número de líneas después de los partidos:

$ grep -A <N> <word> <filename>

Por ejemplo, el siguiente comando imprimirá la línea que contiene la palabra "infierno" junto con 1 línea después.

$ grep -A 1 hell Donuts.txt

Impresión de líneas antes del partido

Para imprimir las líneas que contienen las palabras coincidentes, incluida N número de líneas antes de los partidos:

$ grep -B <N> <word> <filename>

Por ejemplo, el siguiente comando imprimirá la línea que contiene la palabra "infierno" junto con 1 línea antes.

$ grep -B 1 hell Donuts.txt

Líneas de impresión antes y después del partido

Para imprimir las líneas que contienen las palabras coincidentes, incluida N número de líneas antes y después de los partidos:

$ grep -C <N> <word> <filename>

Por ejemplo, el siguiente comando imprimirá la línea que contiene la palabra "infierno" junto con 1 línea antes y después.

$ grep -C 1 hell Donuts.txt

Contar el número de coincidencias

Usando -c opción con grep, puede contar las líneas que coinciden con un patrón específico. Recuerde, solo coincidirá con el número de líneas, no con el número de palabras coincidentes.

$ grep -c <word> <filename>

Por ejemplo, el siguiente comando imprime el número de líneas que contiene la palabra "Donuts".

$ grep -c Donuts Donuts.txt

Tenga en cuenta que nuestro archivo "Donuts.txt" contiene 4 "Donuts", pero -c solo ha impreso el recuento como 3. Sucede porque cuenta el número de líneas en lugar del número de coincidencias.

Para obtener más información sobre grep, use el siguiente comando:

$ grep --help

o visite la página de manual usando el siguiente comando:

$ man grep

Esto lo llevará a la página del manual de Grep.

¡Eso es todo! En esta publicación, explicamos la sintaxis básica y el uso del comando grep en Linux. También revisamos algunas opciones de línea de comandos para ampliar su utilidad. Si conoce otros usos del comando Grep en Linux que nos hemos perdido, nos encantaría conocerlos en los comentarios a continuación.

Explore este artículo relacionado para descubrir cómo puede encontrar archivos y directorios en Linux.


Ubuntu
  1. 5 ejemplos prácticos de comandos de fuser de Linux

  2. 7 ejemplos de comandos Linux df

  3. 8 ejemplos de comandos TR de Linux

  4. Ejemplos de comandos rm en Linux

  5. Ejemplos de comandos ps en Linux

Uso de Cat Command en Linux con ejemplos

Usando el comando GREP en Linux con ejemplos

Ejemplos de comandos táctiles de Linux

Comando IP de Linux con ejemplos

Comando Grep en Linux (con ejemplos)

Ejemplos de comandos id en Linux