Cómo usar expresiones regulares en Linux

Las expresiones regulares en Linux son caracteres especiales que ayudan a la hora de buscar datos y hacer coincidir patrones complejos. Las expresiones regulares se abrevian como regexp o regex

Se utilizan en muchos programas de Linux como grep, bash, rename, sed, etc. grep es uno de los comandos de Linux más útiles y potentes para el procesamiento de textos. grep busca en uno o más archivos de entrada líneas que coincidan con una expresión regular y escribe cada línea coincidente en la salida estándar. Un patrón consta de operadores, que crean caracteres literales y metacaracteres que tienen un significado especial. GNU grep admite tres sintaxis de expresiones regulares: básica, extendida y compatible con Perl.

En su forma más simple, cuando no se especifica ningún tipo de expresión regular, grep interpreta los patrones de búsqueda como expresiones regulares básicas. Para interpretar el patrón como una expresión regular extendida, use la opción -E (o –extended-regexp). En la implementación GNU de grep, no hay diferencia funcional entre la sintaxis de expresión regular básica y extendida. La única diferencia es que en las expresiones regulares simples, los metacaracteres ?, +, {, |, ( y ) se interpretan como caracteres literales. Para preservar el significado especial de los metacaracteres cuando se usan expresiones regulares simples, los caracteres deben escaparse con una barra invertida (). Más adelante explicaremos el significado de estos y otros metacaracteres.

Cómo usar expresiones regulares (regexes) en Linux

Utilizando "." (punto) para hacer coincidir cadenas.

Utilizando "." podemos encontrar una cadena si no conocemos la cadena exacta, o simplemente recordamos solo el inicio y el final de la cadena, podemos usar "." Como un carácter faltante, y completará ese carácter faltante. Veamos un ejemplo para una mejor comprensión:' Este archivo contiene el nombre de la fruta, y vamos a usar expresiones regulares en este archivo.

Texto:

  • #!/bin/sh
  • # expresión regular básica
  • #1. Usar "." para hacer coincidir cadenas.
  • # cargando el archivo de texto
  • fruit_file=`gato fruit.txt | grep App.e`
  • # aquí la palabra original (respuesta) será Apple,
  • # pero como no conocemos la ortografía de Apple,
  • # pondremos un punto (.) en ese lugar.
  • eco “1. Utilizando '.' para encontrar la palabra original, mientras que la palabra dada es 'App.e'”
  • # mostrando la salida
  • echo "Salida:"
  • echo “$archivo_de_frutas”

Uso de “^” (signo de intercalación) para hacer coincidir el comienzo de la cadena

Usando "^", podemos encontrar todas las cadenas que comienzan con el carácter dado. Veamos un ejemplo para una mejor comprensión. Aquí estamos tratando de encontrar todos los nombres de frutas que comienzan con la letra B:

Texto:

  • #!/bin/sh
  • # expresión regular básica
  • # 2. Use "^" (signo de intercalación) para hacer coincidir el comienzo de la cadena
  • # cargando el archivo de texto
  • fruit_file=`gato fruit.txt | grep^B`
  • eco “2. Use '^' para encontrar todas las palabras que comienzan con la letra 'B'”
  • # mostrando la salida
  • echo "Salida:"
  • echo “$archivo_de_frutas”

Usando "$" (signo de dólar) para hacer coincidir el final de la cadena

Usando "$" podemos encontrar todas las cadenas que terminan con el carácter dado. Veamos un ejemplo para una mejor comprensión. Aquí estamos tratando de encontrar todos los nombres de frutas que terminan con la letra e:

texto:

  • #!/bin/sh
  • # expresión regular básica
  • # 3. Use "$" (dólar) para hacer coincidir el final de la cadena
  • # cargando el archivo de texto
  • fruit_file=`gato fruit.txt | grep e$`
  • eco “3. Usando '$' para encontrar todas las palabras que terminan con la letra 'e'”
  • # mostrando la salida
  • echo "Salida:"
  • echo “$archivo_de_frutas”

Usando "*" (un asterisco) para encontrar cualquier número de repeticiones de una cadena

Usando "*", podemos hacer coincidir hasta cero o más ocurrencias del carácter en la cadena. Veamos un ejemplo para una mejor comprensión. Aquí estamos tratando de encontrar todos los nombres de frutas que tienen una o más apariciones de 'ap' una tras otra.

Texto:

  • #!/bin/sh
  • # expresión regular básica
  • # 4. Use "*" para encontrar cualquier número de repeticiones de una cadena
  • # cargando el archivo de texto
  • fruit_file=`gato fruit.txt | grep ap*le`
  • eco “4. Usando '*' para encontrar el nombre de todas las frutas que tienen una o más apariciones de 'ap' una tras otra en él”
  • # mostrando la salida
  • echo "Salida:"
  • echo “$archivo_de_frutas”

Usando "" (una barra invertida) para hacer coincidir el símbolo especial

Usando "" con símbolos especiales como espacio en blanco (" "), nueva línea ("n"), podemos encontrar cadenas del archivo. Veamos un ejemplo para una mejor comprensión. Aquí estamos tratando de encontrar todos los nombres de frutas que tienen espacio en sus nombres completos.

Texto:

  • #!/bin/sh
  • # expresión regular básica
  • # 5. Usando "" para hacer coincidir el símbolo especial
  • # cargando el archivo de texto
  • fruit_file=`gato fruit.txt | grep ” “`
  • eco “5. Usando "para encontrar el nombre de todas las frutas que tienen un solo espacio en su nombre completo"
  • # mostrando la salida
  • echo "Salida:"
  • echo “$archivo_de_frutas”

Usando "()" (llaves) para hacer coincidir el grupo de expresiones regulares

Usando "()", podemos encontrar cadenas que coincidan con el patrón en "()". Veamos un ejemplo para una mejor comprensión. Aquí estamos tratando de encontrar todos los nombres de frutas que tienen espacio en su nombre completo.

Texto:

  • #!/bin/sh
  • # expresión regular básica
  • # 6. Usar "()" (llaves) para hacer coincidir el grupo de expresiones regulares.
  • # cargando el archivo de texto
  • fruit_file=`gato fruit.txt | grep -E “(fruta)”`
  • eco “6. Usando '()' para encontrar el nombre de todas las frutas que tienen la palabra 'fruta' en ellas”
  • # mostrando la salida
  • echo "Salida:"
  • echo “$archivo_de_frutas”

Utilizando "?" (signo de interrogación) para encontrar todos los caracteres coincidentes

Usando “?”, podemos hacer coincidir 0 o 1 repeticiones de lo anterior. Por ejemplo, si hacemos algo como esto: ab? Coincidirá con 'a' o 'ab'. Veamos otro ejemplo para una mejor comprensión. Aquí estamos tratando de encontrar todos los nombres de frutas que tienen el carácter 'Ch' en ellos.

Texto:

  • #!/bin/sh
  • # expresión regular básica
  • # 7. Usando "?" (signo de interrogación) para que coincida con el
  • # cargando el archivo de texto
  • fruit_file=`gato fruit.txt | grep-E Ch?`
  • eco “7. Utilizando '?' para encontrar el nombre de todas las frutas que tienen 'Ch' en ellas”
  • # mostrando la salida
  • echo "Salida:"
  • echo “$archivo_de_frutas”

Sin usted, esta web no existiria. Gracias por visitarme, espero que le haya gustado y vuelva. Gracias ☺️

Articulos tematica linux

Fecha actualizacion el 2022-01-18. Fecha publicacion el 2022-01-18. Categoria: linux Autor: Oscar olg Mapa del sitio Fuente: bollyinside