Unix / Linux Cómo usar los comandos grep

grep es una de las utilidades de línea de comandos Unix / Linux más importantes. Este tutorial mostrará diferentes formas de utilizar la utilidad de búsqueda de texto.

grep significa "Búsqueda global en expresiones regulares e impresión".

grep muestra las líneas en un archivo que coinciden con un patrón STDIN (Entrada a través del teclado). El patrón que se proporciona como entrada a través de grep son expresiones regulares que se pueden usar para buscar el contenido del archivo fácilmente.

Sintaxis: grep [OPCIONES] PATRÓN [ARCHIVO]

Comando 1.1

$ grep 'root' / etc / passwd

El comando anterior buscará el contenido que tenga 'root' escrito dentro de un archivo '/ etc / passwd'. Si un archivo contiene cadenas como 'rootwr', 'ishroot' coincidirá con la raíz en 'rootwr' y 'ishroot' y mostrará el resultado. Si desea buscar la palabra exacta 'root' usando grep, siga el comando a continuación.

Comando 1.2

$ grep -w 'root' / etc / passwd

Usa -w para hacer coincidir la palabra exacta.

El comando anterior coincidirá con -w palabra exacta 'raíz'. Ahora, si un archivo contiene cadenas como 'rootwr', 'root', 'ishroot', este comando muestra solo para el patrón 'root' no para 'rootwr' e 'ishroot' que se mostraron en el primer comando 1.1.

Comando 1.3

$ grep -i 'bug' / etc / passwd

Utilice -i para buscar mayúsculas y minúsculas.

Si está buscando con este comando 'grep' bug '/ etc / passwd',
Solo coincidirá con el patrón de cadena 'error' que no es un patrón que no distinga mayúsculas y minúsculas. Si / etc / passwd contiene 'Bug', 'BuG', 'bGG' este comando 'grep' bug '/ etc / passwd' mostrará resultados en blanco.

Entonces, para buscar sin distinción entre mayúsculas y minúsculas para que coincida con el patrón, debe usar '-i' para que coincida con todos los patrones para una cadena dada.

por ejemplo $ grep -i 'bug' / etc / passwd

coincidirá con patrones para:

'insecto'
'Insecto'
'insecto'
'insecto'
'INSECTO'
'Insecto'
'insecto'

Todos los patrones que se evalúan a partir de 'bug'.

Comando 1.4

$ grep -n 'root' / etc / passwd

Utilice -n para imprimir números de línea de coincidencias

La opción ahora -n muestra números de línea con líneas, que contienen el patrón de entrada. El comando anterior muestra los números de línea que contienen la cadena 'raíz'.

Si desea hacer coincidir más de una palabra, puede hacerlo usando el siguiente comando:

Comando 1.5

$ grep -E -n 'backup | root' / etc / passwd

El comando anterior buscará el patrón de palabras 'respaldo' y 'raíz' y mostrará los números de línea con las líneas que contienen ambas palabras.

Dónde:

Utilice -E para expresiones regulares extendidas

Puede encontrar más ayuda sobre esto usando el comando 'man grep'.

Comando 1.6

$ grep -v 'root' / etc / passwd

Utilice -v para imprimir líneas que no contengan patrón.
El comando anterior muestra las líneas que no contienen el patrón 'raíz'.

Comando 1.7

$ grep -r 'raíz' / etc /

Utilice -r para buscar recursivamente un directorio.
Este comando buscará y mostrará el patrón 'raíz' en todos los archivos dentro del directorio '/ etc /'.

Comando 1.8

$ grep -c 'bash' / etc / passwd

Use '-c' para devolver un conteo de líneas con el patrón correspondiente.

Este comando muestra el recuento de líneas que contiene el patrón 'bash' en un archivo / etc / passwd.

Comando 1.9

$ grep -r -l 'root' / etc

Use '-l' para devolver los nombres de los archivos que tienen al menos una línea que contiene el patrón.

El comando anterior muestra los nombres de los archivos que contienen el patrón 'raíz',
dentro del directorio / etc La nota importante aquí es que necesita usar la opción '-r' (comando 1.7) para atravesar el directorio / etc recursivamente.