GNU/Linux >> Tutoriales Linux >  >> Linux

10 ejemplos prácticos de expresiones regulares con grep

Grep o Impresión de expresión regular global se utiliza para buscar texto o patrones en un sistema Linux. Puede buscar en archivos, directorios e incluso resultados de otros comandos.

Las expresiones regulares son patrones que pueden hacer coincidir el texto según las necesidades del usuario. Estas son como reglas para la coincidencia de patrones.

Grep se usa a menudo junto con expresiones regulares para buscar patrones en el texto. Veamos algunos ejemplos prácticos de expresiones regulares con grep.

1. Coincidencia de una palabra independientemente de su caso

A veces, en un texto, la misma palabra se puede escribir de diferentes maneras. Este es el caso más común con los nombres propios. En lugar de comenzar con una letra mayúscula, a veces se escriben en minúsculas.

$ grep "[Jj]ayant" 

Se han hecho coincidir ambas versiones de la palabra, independientemente de su caso.

Otro caso interesante se puede observar con la palabra ‘IoT’. Una palabra como esta puede aparecer varias veces en el texto con diferentes variaciones. para hacer coincidir todas las palabras independientemente del uso del caso:

$ grep "[iI][oO][tT]"

2. Número de teléfono móvil coincidente usando expresiones regulares con grep

Las expresiones regulares se pueden utilizar para extraer el número de móvil de un texto.

El formato del número de móvil tiene que ser conocido de antemano. Por ejemplo, una expresión regular diseñada para hacer coincidir números de teléfono móvil no funcionará para números de teléfono de casa.

En este ejemplo, se comparará el número de móvil que tiene el siguiente formato:91-1234567890 (es decir, TwoDigit-TenDigit).

$ grep "[[:digit:]]\{2\}[ -]\?[[:digit:]]\{10\}"

Como es evidente, solo coincide el número de móvil en el formato mencionado anteriormente.

3. Hacer coincidir la dirección de correo electrónico

Extraer la dirección de correo electrónico de un texto es muy útil y se puede lograr usando grep.

Una dirección de correo electrónico tiene un formato particular. La parte anterior a la '@' es el nombre de usuario que identifica el buzón. Luego está un dominio como gmail.com o yahoo.in.

La expresión regular se puede diseñar teniendo en cuenta estas cosas.

$ grep -E "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}"
  • [A-Za-z0-9._%+-]+ captura el nombre de usuario antes de '@'
  • [A-Za-z0-9.-]+ captura el nombre del dominio sin la parte '.com'
  • .[A-Za-z]{2,6} captura el '.com' o '.in', etc.

4. Comprobador de URL

Una URL tiene un formato particular de representación. Se puede crear una expresión regular que verifique si una URL está en la forma adecuada o no.

Una URL debe comenzar con http/https/ftp seguido de '://'. Luego está el nombre de dominio que puede terminar en '.com', '.in', '.org', etc.

$ grep -E "^(http|https|ftp):[\/]{2}([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4})"

-E utilizado en este ejemplo y en el anterior significa grep extendido que usa el conjunto de expresiones regulares extendidas en lugar del conjunto de expresiones regulares básicas. Esto significa que no es necesario escapar ciertos caracteres especiales. Hace que el proceso de escribir una expresión regular compleja sea menos tedioso. Lea más sobre esto aquí.

5. Encontrar archivos con una extensión particular

El comando ls muestra todos los archivos en el directorio actual.

ejecutar ls -l brinda información adicional sobre los archivos. Grep se puede usar junto con el comando ls -l para hacer coincidir el patrón en su salida.

Para capturar archivos que se guardan con la extensión '.txt' use:

$ ls -l | grep '.txt$' 

6. Buscar contenido entre paréntesis

A menudo, los archivos de texto tienen contenido entre paréntesis. Podemos extraerlos usando expresiones regulares con grep.

$ grep "([A-Za-z ]*)"

La expresión regular elegirá el texto que está entre paréntesis. También se puede especificar la longitud del contenido entre paréntesis.

Por ejemplo, para hacer coincidir paréntesis con solo 10 caracteres, use:

$ grep "([A-Za-z ]{10})"

7. Coincidencia de líneas que comienzan con una palabra en particular

Podemos usar expresiones regulares para buscar líneas que comiencen con una palabra en particular.

Para buscar líneas que comiencen con la palabra Manzanas, use:

grep '^Apples' input.txt 

Del mismo modo, también se pueden encontrar líneas que comiencen con cualquier otra palabra.

Podemos hacer coincidir las líneas que terminan con una palabra específica usando las siguientes expresiones regulares.

$ grep 'apples.$' input.txt

8. Coincidencia de varias palabras a la vez

Hagamos coincidir varias palabras con expresiones regulares como se muestra a continuación:

$ grep 'Apples\|Orange' input.txt

Este comando funciona con una línea OR entre las dos palabras. Coincide con las líneas que contienen cualquiera de las dos palabras.

Para hacer un AND entre las dos palabras usa:

$ grep 'Apple' input.txt | grep 'Orange

9. Emparejar la misma palabra en diferentes formas

A veces una palabra puede ocurrir en diferentes formas. Pueden diferir según el tiempo verbal en el que se usan.

Pelado y Peeling son ejemplos de ello. En ambas palabras, la raíz de la palabra es 'peel'

Podemos usar expresiones regulares para hacer coincidir todas las formas de una palabra.

En nuestro texto, hemos deletreado pelado y pelado como pelado y pelado respectivamente.

También podemos traducir del inglés estadounidense al inglés británico de manera similar. Por ejemplo, la palabra color se convierte en color.

$ grep 'peal\([a-z]*\)\(\.*[[:space:]]\)' input.txt

10. Búsqueda de usuarios en el archivo /etc/passwd

grep se puede usar para obtener usuarios del archivo /etc/passwd/. El archivo /etc/passwd mantiene la lista de usuarios en el sistema junto con información adicional.

$ grep "Adam" /etc/passwd 

El comando usa grep en un archivo del sistema. Cuando se encuentra la palabra "Adam", podemos ver la línea como salida. Podemos realizar la misma búsqueda para cualquier otro elemento del archivo.

Conclusión

Regex junto con el comando grep puede ser muy poderoso. Regex se estudia como un campo separado en informática y se puede usar para hacer coincidir patrones altamente complejos. Obtén más información sobre las expresiones regulares aquí.


Linux
  1. Cómo usar el comando Hexdump de Linux con ejemplos prácticos

  2. Expresiones Regulares Avanzadas en el Comando Grep con 10 Ejemplos – Parte II

  3. Expresiones Regulares en el Comando Grep con 10 Ejemplos – Parte I

  4. Comando rsync de Linux con ejemplos prácticos

  5. Comando Echo con Ejemplos Prácticos

Usando el comando GREP en Linux con ejemplos

Bash For Loop con ejemplos prácticos

Comando de espera en Linux explicado con ejemplos prácticos

Comando Grep en Linux (con ejemplos)

Comando lsof de Linux explicado con 12 ejemplos prácticos

15 ejemplos prácticos de comandos Grep en Linux / UNIX