Cómo usar grep para buscar múltiples cadenas y patrones

1 mar 2021 2 min di lettura
Cómo usar grep para buscar múltiples cadenas y patrones
Indice dei contenuti

Introducción

grep es una poderosa herramienta de línea de comandos que le permite buscar en uno o más archivos de entrada líneas que coincidan con una expresión regular y escribir cada línea coincidente en la salida estándar.

En este artículo, le mostraremos cómo usar GNU grep para buscar múltiples cadenas o patrones.

Grep múltiples patrones

GNU grep admite tres sintaxis de expresiones regulares, básica, extendida y compatible con Perl. Cuando no se especifica ningún tipo de expresión regular, grep interpreta los patrones de búsqueda como expresiones regulares básicas.

Para buscar varios patrones, use el operador de alternancia.

El operador de alternancia | (tubería) le permite especificar varias coincidencias posibles que pueden ser cadenas literales o conjuntos de expresiones. Este operador tiene la precedencia más baja de todos los operadores de expresión regular.

La sintaxis para buscar múltiples patrones usando grep para expresiones regulares básicas es la siguiente:

grep 'pattern1\|pattern2' file...

Incluya siempre la expresión regular entre comillas simples para evitar que el shell interprete y expanda los metacaracteres.

Cuando se utilizan expresiones regulares básicas, los metacaracteres se interpretan como caracteres literales. Para mantener los significados especiales de los metacaracteres, debe usar una barra invertida ( \ ). Es por eso que escapamos del | ) con una barra.

Para interpretar el patrón como una expresión regular extendida, invoque la grep con el -E (o --extended-regexp ). Cuando use la expresión regular extendida, no escape el |:

grep -E 'pattern1|pattern2' file...

Para obtener más información sobre cómo crear expresiones regulares, consulte nuestro artículo sobre expresiones regulares Grep.

Varias cuerdas con Grep

Los literales de cadenas son los patrones más básicos.

En el siguiente ejemplo, buscamos todas las apariciones de las palabras fatal, error y critical en el archivo de registro de errores de Nginx:

grep 'fatal\|error\|critical' /var/log/nginx/error.log

Si la cadena que está buscando incluye espacios, escríbala entre comillas dobles.

Aquí está el mismo ejemplo usando la expresión regular extendida, que elimina la necesidad de escapar del |

grep -E 'fatal|error|critical' /var/log/nginx/error.log

De forma predeterminada, grep mayúsculas y minúsculas. Esto significa que los caracteres en mayúsculas y minúsculas se tratan como distintos.

Para ignorar mayúsculas y minúsculas al buscar, invoque grep con la -i (o --ignore-case ):

grep -i 'fatal\|error\|critical' /var/log/nginx/error.log

Al buscar una cadena, grep mostrará todas las líneas donde la cadena está incrustada en cadenas más grandes. Entonces, si estaba buscando "error", grep también imprimirá líneas donde "error" está incrustado en palabras más grandes, como "sin errores" o "antiterroristas".

Para devolver solo aquellas líneas donde la cadena especificada es una palabra completa (encerrada por caracteres que no son palabras), use la -w (o --word-regexp ):

grep -w 'fatal\|error\|critical' /var/log/nginx/error.log

Los caracteres de palabra incluyen todos los símbolos alfanuméricos (az, AZ y 0-9) y el símbolo de subrayado _. Todos los demás símbolos se consideran caracteres que no son palabras (no palabras).

Para obtener más detalles sobre las grep, visite nuestro artículo sobre el comando Grep.

Conclusión

Le mostramos cómo buscar múltiples patrones, cadenas y palabras con grep.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.