GNU/Linux >> Tutoriales Linux >  >> Linux

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. A continuación se muestra un ejemplo.

Busque la palabra "linuxtechi" en el archivo /etc/passwd,

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

Ejemplo 2) Buscar el patrón en varios 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) Liste 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 'root' en /etc/passwd y /etc/shadow file

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

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

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. Mostremos 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 terminen con “bash ” 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 listar 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 tenga 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 muestra 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 el contenido a continuación.

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

Ahora intenta buscar usando el archivo grep_pattern.

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

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

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

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

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

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

Leer también10 ejemplos de comandos 'rm' para principiantes de Linux


Linux
  1. 7 ejemplos de comandos Linux df

  2. 8 ejemplos de comandos TR de Linux

  3. Ejemplos de comandos rm en Linux

  4. Ejemplos de comandos ps en Linux

  5. Ejemplos de comandos sa en Linux

9 ejemplos de comandos diff en Linux

Cómo usar el comando Grep en Linux + Ejemplos útiles de Grep

Comando ip de Linux con ejemplos

15 ejemplos del uso del comando Grep en Linux

Comando Grep en Linux (con ejemplos)

Ejemplos de comandos id en Linux