14 ejemplos de comandos Grep en Linux

Grep es una utilidad de línea de comandos en los sistemas Linux y Unix que se usa para imprimir líneas de un archivo después de hacer coincidir las cadenas o la palabra. grep significa impresión de expresión regular global, se puede usar para buscar cadenas de uno o más archivos según el patrón. Un patrón puede ser un solo carácter, un grupo de caracteres, una sola palabra o una oración.

Cuando ejecutamos el comando grep con la cadena especificada, si coincide, mostrará la línea del archivo que contiene la cadena sin modificar el contenido del archivo existente.

Sintaxis del comando Grep:

$ grep

En este tutorial, discutiremos 14 ejemplos útiles de comandos grep de Linux, sumerjámonos en los ejemplos.

Ejemplo 1) Buscar el patrón o la palabra en un archivo

Cuando ejecutamos el comando grep seguido de la cadena de búsqueda o el patrón, imprimirá la línea coincidente de un archivo. El ejemplo se muestra a continuación.

Busque la palabra «linuxtechi» en el archivo /etc/passwd file,

[email protected]:~# grep linuxtechi /etc/passwd
linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
[email protected]:~#

Ejemplo 2) Buscar el patrón en los múltiples archivos

Para buscar la palabra ‘linuxtechi’ en varios archivos como /etc/passwd, /etc/shadow y /etc/gshadow, ejecute

[email protected]:~# grep linuxtechi /etc/passwd /etc/shadow /etc/gshadow
/etc/passwd:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
/etc/shadow:linuxtechi:$6$DdgXjxlM$4flz4JRvefvKp0DG6re:16550:0:99999:7:::
/etc/gshadow:adm:*::syslog,linuxtechi
/etc/gshadow:cdrom:*::linuxtechi
/etc/gshadow:sudo:*::linuxtechi
/etc/gshadow:dip:*::linuxtechi
/etc/gshadow:plugdev:*::linuxtechi
/etc/gshadow:lpadmin:!::linuxtechi
/etc/gshadow:linuxtechi:!::
/etc/gshadow:sambashare:!::linuxtechi
[email protected]:~#

Ejemplo 3) Enumere el nombre de los archivos que contienen word (grep -l)

Supongamos que queremos enumerar los archivos que contienen la palabra ‘linuxtechi’ de varios archivos, para hacerlo use la opción ‘-l’ en el comando grep seguido de la palabra (patrón) y los archivos.

[email protected]:~# grep -l linuxtechi /etc/passwd /etc/shadow /etc/fstab /etc/mtab
/etc/passwd
/etc/shadow
[email protected]:~#

Ejemplo 4) Busque el patrón en el archivo junto con el número de línea asociado (grep -n)

Supongamos que queremos una línea de lista y su número que coincida con el patrón o la palabra. Use la opción ‘-n’ en el comando grep, en nuestro patrón de ejemplo es ‘linuxtechi’

[email protected]:~# grep -n linuxtechi /etc/passwd
39:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
[email protected]:~#

A continuación se muestra otro ejemplo que muestra la línea y su número después de hacer coincidir una palabra ‘raíz’ en el archivo /etc/passwd y /etc/shadow

[email protected]:~# grep -n root /etc/passwd /etc/shadow

grep-n-root

Ejemplo 5) Imprime las líneas excluyendo el patrón (grep -v)

Enumere todas las líneas del archivo /etc/passwd que no contengan la palabra específica “linuxtechi”.

[email protected]:~# grep -v linuxtechi /etc/passwd

opción grep-v

Ejemplo 6) Buscar todas las líneas que comienzan con un patrón específico (grep ^)

Bash Shell trata el símbolo de intercalación (^) como un carácter especial que marca el comienzo de una línea o una palabra. Vamos a mostrar las líneas que comienzan con la palabra «raíz» en el archivo /etc/passwd, ejecute debajo del comando grep

[email protected]:~# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
[email protected]:~#

Ejemplo 7) Buscar todas las líneas que terminen con una palabra específica (grep $)

Bash Shell trata el símbolo del dólar ‘$’ como un carácter especial que marca los finales de línea o palabra. Enumere todas las líneas de /etc/passwd que terminan con «intento» palabra.

[email protected]:~# grep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
[email protected]:~#

Ejemplo 8) Buscar palabra o patrón recursivamente (grep -r)

Cuando ejecutamos el comando grep sin mencionar los nombres de los archivos, mostrará las líneas de todos los archivos que contienen la cadena coincidente. Hará la búsqueda recursivamente en el directorio de trabajo actual.

Para buscar una palabra recursivamente en todos los archivos de una carpeta, use la opción ‘-r’ en el comando grep, el ejemplo se muestra a continuación:

[email protected]:~# grep -r linuxtechi /etc/
/etc/subuid:linuxtechi:100000:65536
/etc/group:adm:x:4:syslog,linuxtechi
/etc/group:cdrom:x:24:linuxtechi
/etc/group:sudo:x:27:linuxtechi
/etc/group:dip:x:30:linuxtechi
/etc/group:plugdev:x:46:linuxtechi
/etc/group:lpadmin:x:115:linuxtechi
/etc/group:linuxtechi:x:1000:
/etc/group:sambashare:x:131:linuxtechi
/etc/passwd-:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
/etc/passwd:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
............................................................................

El comando anterior buscará la palabra ‘linuxtechi’ en el directorio «/etc» de forma recursiva.

Ejemplo 9) Buscar todas las líneas vacías o en blanco de un archivo (grep ^$)

Para buscar y enumerar todas las líneas vacías o en blanco de un archivo, use la combinación de caracteres especiales ‘^$’ en el comando grep, el ejemplo se muestra a continuación:

[email protected]:~# grep ^$ /etc/shadow
[email protected]:~#

Como no hay una línea vacía en el archivo /etc/shadow, no se muestra nada.

Ejemplo 10) Ignorar mayúsculas y minúsculas durante la búsqueda (grep -i)

La opción -i en el comando grep ignora las mayúsculas y minúsculas, es decir, no discriminará mayúsculas o minúsculas durante la búsqueda.

Tomemos un ejemplo, quiero buscar la palabra «LinuxTechi» en el archivo passwd.

[email protected]:~$ grep -i LinuxTechi /etc/passwd
linuxtechi:x:1001:1001::/home/linuxtechi:/bin/bash
[email protected]:~$

Nota : El comando Grep permite la búsqueda basada en la palabra exacta usando la opción ‘-w’, el ejemplo se muestra a continuación,

[email protected]:~$ grep -w cook /mnt/my_dish.txt

El comando anterior buscará y buscará las líneas que tienen la palabra «cocinar». No dará resultados que tiene cocción.

Ejemplo 11) Buscar múltiples patrones o palabras (grep -e)

Por ejemplo, quiero buscar la palabra ‘linuxtechi’ y ‘raíz’ en un solo comando grep, luego use la opción -e en el comando grep seguido del patrón de búsqueda

[email protected]:~# grep -e "linuxtechi" -e "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
[email protected]:~#
or 
[email protected]:~# grep -E "linuxtechi|root" /etc/passwd

Ejemplo 12) Obtener patrón de búsqueda de un archivo (grep -f)

Use la opción ‘-f’ en el comando grep para obtener el patrón de búsqueda de un archivo. El ejemplo se demuestra a continuación:

Primero cree un archivo de patrón de búsqueda «grep_pattern» en su directorio de trabajo actual. En mi caso, he puesto los siguientes contenidos.

[email protected]:~# cat grep_pattern
^linuxtechi
root
false$
[email protected]:~#

Ahora intente buscar usando el archivo grep_pattern.

[email protected]:~# grep -f grep_pattern /etc/passwd

grep-f-opción

Ejemplo 13) Cuente el número de líneas que coinciden con el patrón de búsqueda (grep -c)

Si desea contar el número de líneas que coinciden con el patrón de búsqueda, utilice la opción ‘-c’ en el comando grep.

Consideremos el ejemplo anterior y contemos las líneas que coinciden con el patrón de búsqueda,

[email protected]:~# grep -c -f grep_pattern /etc/passwd
22
[email protected]:~#

Ejemplo 14) Mostrar N número de líneas antes y después de la coincidencia de patrones (grep -B -A)

a) Muestre cuatro líneas antes de la coincidencia de patrones, use la opción -B en el comando grep, el ejemplo se muestra a continuación:

[email protected]:~# grep -B 4 "games" /etc/passwd

opción grep-B

b) Mostrar cuatro líneas después de la coincidencia de patrones, use la opción -A en el comando grep

[email protected]:~# grep -A 4 "games" /etc/passwd

opción grep-A

c) Mostrar cuatro líneas alrededor de la coincidencia de patrones usando la opción -C

[email protected]:~# grep -C 4 "games" /etc/passwd

opción grep-C

Eso es todo del artículo, espero que estos ejemplos lo ayuden a usar el comando grep de manera más eficiente. Comparta sus comentarios y comentarios en la sección de comentarios a continuación.

Leer también: 10 ejemplos de comandos ‘rm’ para principiantes de Linux

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *