GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo hacer Grep para múltiples cadenas y patrones

grep es una poderosa herramienta de línea de comandos que le permite buscar líneas que coincidan con una expresión regular en uno o más archivos de entrada 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 Multiple Patterns #

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 interpretar patrones de búsqueda como expresiones regulares básicas.

Para buscar varios patrones, utilice el operador OR (alternancia).

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

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

grep 'pattern1\|pattern2' file...

Encierre siempre la expresión regular entre comillas simples para evitar la interpretación y expansión de los metacaracteres por parte del shell.

Cuando se utilizan expresiones regulares básicas, los metacaracteres se interpretan como caracteres literales. Para mantener los significados especiales de los metacaracteres, se deben escapar con una barra invertida (\ ). Es por eso que estamos escapando del operador OR (| ) con una barra inclinada.

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

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

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

Grep Multiple Strings #

Las cadenas literales 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 error de registro 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 operador |

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

Por defecto, grep distingue entre 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 with el -i opción (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á las líneas donde "error" está incrustado en palabras más grandes, como "sin errores" o "antiterroristas".

Para devolver solo aquellas líneas en las que la cadena especificada es una palabra completa (entre caracteres que no son palabras), use -w (o --word-regexp ) opción:

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

Los caracteres de palabras incluyen caracteres alfanuméricos (a-z, A-Z y 0-9) y guiones bajos (_). Todos los demás caracteres se consideran caracteres que no son palabras.

Para más detalles sobre grep opciones, visite nuestro artículo Comando Grep.

Conclusión #

Le hemos mostrado cómo grep para buscar múltiples patrones, cadenas y palabras.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. ¿Cómo ejecutar Grep con patrones múltiples y?

  2. ¿Cómo especificamos múltiples patrones de ignorar para el comando `tree`?

  3. ¿Grep para cadenas múltiples en archivos y luego listar los archivos en orden de tamaño?

  4. ¿Cómo escribir la contraseña para varias ventanas?

  5. Linux:¿cómo buscar una palabra específica y tomar texto?

Cómo uso Ansible y Anacron para la automatización

Cómo buscar múltiples cadenas, patrones o palabras

Cómo comparar números y cadenas en Linux Shell Script

Cómo instalar y configurar múltiples motores de ajedrez en XBoard

Cómo usar bash if -z y if -n para probar cadenas en Linux

Cómo hacer una copia de seguridad y restaurar la tarjeta SD para Raspberry Pi