GNU/Linux >> Tutoriales Linux >  >> Linux

Introducción a las expresiones regulares

Todos hemos usado archivos englobados con caracteres comodín como * y ? como un medio para seleccionar archivos específicos o líneas de datos de un flujo de datos. Estas herramientas son poderosas y las uso muchas veces al día. Sin embargo, hay cosas que no se pueden hacer con comodines.

Las expresiones regulares (regexes o RE) nos brindan un patrón más complejo y flexible

capacidades de coincidencia. Así como ciertos caracteres adquieren un significado especial cuando se usa el archivo globbing, los RE también tienen caracteres especiales. Hay dos tipos principales de expresiones regulares (RE), expresiones regulares básicas (BRE) y expresiones regulares extendidas (ERE).

Lo primero que necesitamos son algunas definiciones. Hay muchas definiciones para el término expresiones regulares , pero muchos son secos y poco informativos. Aquí están los míos.

Las expresiones regulares son cadenas de literales y metacaracteres que varias utilidades de Linux pueden usar como patrones para hacer coincidir cadenas de datos de texto sin formato ASCII en un flujo de datos. Cuando se produce una coincidencia, se puede usar para extraer o eliminar una línea de datos de la secuencia, o para modificar la cadena coincidente de alguna manera.

Las expresiones regulares básicas (BRE) y las expresiones regulares extendidas (ERE) no son significativamente diferentes en términos de funcionalidad. (Consulte la Sección 3.6 de la página de información de grep, "Expresiones regulares básicas frente a extendidas".) La principal diferencia está en la sintaxis utilizada y cómo se especifican los metacaracteres. En expresiones regulares básicas, los metacaracteres ? , + , { , | , ( y ) pierden su significado especial. En su lugar, es necesario utilizar las versiones con barra invertida:\? , \+ , \{ , \| , \( y \) . Muchos creen que la sintaxis ERE es más fácil de usar.

Nota: Cuando hablo de expresiones regulares, en un sentido general, generalmente me refiero a incluir expresiones regulares tanto básicas como extendidas. Si hay que hacer una diferenciación, usaré las siglas BRE para expresiones regulares básicas o ERE para expresiones regulares extendidas.

Las expresiones regulares (RE) llevan el concepto de usar metacaracteres para hacer coincidir patrones en flujos de datos mucho más allá de la acumulación de archivos, y nos brindan aún más control sobre los elementos que seleccionamos de un flujo de datos. Varias herramientas utilizan RE para analizar un flujo de datos para hacer coincidir patrones de caracteres con el fin de realizar alguna transformación en los datos.

Nota: Un significado general de analizar es examinar algo mediante el estudio de sus componentes. Para nuestros propósitos, analizamos un flujo de datos para localizar secuencias de caracteres que coincidan con un patrón específico.

Las expresiones regulares tienen la reputación de ser conjuros oscuros y arcanos que solo usan aquellos con poderes especiales de administrador de sistemas mágicos. Esta única línea de código a continuación (que usé para transformar un archivo que me enviaron en un formulario utilizable) parece confirmar esto:

$ cat Experiment_6-1.txt | grep -v Team | grep -v "^\s*$" | sed -e "s/[Ll]eader//" -e "s/\[//g" -e "s/\]//g" -e "s/)//g" | awk '{print $1" "$2" <"$3">"}' > addresses.txt

Esta canalización de comandos parece ser una secuencia intratable de galimatías sin sentido para cualquier persona sin el conocimiento de expresiones regulares. Ciertamente me pareció así la primera vez que me encontré con algo similar al principio de mi carrera. Como verá, las expresiones regulares son relativamente simples una vez que se explican.

Solo podemos comenzar a tocar todas las posibilidades que nos abren las expresiones regulares en un solo artículo (incluso en una sola serie). Hay libros completos dedicados exclusivamente a las expresiones regulares, por lo que exploraremos los conceptos básicos en una serie de artículos aquí sobre Habilitar Sysadmin durante la próxima semana. Al final, sabrá lo suficiente para comenzar con las tareas comunes a los administradores de sistemas. Con suerte, tendrás ganas de aprender más por tu cuenta después de eso.

Nota: Este artículo es una versión ligeramente modificada del Capítulo 6 del Volumen 2 de mi libro de Linux, Uso y administración de Linux:de cero a SysAdmin, que se publicará en Apress a finales de 2019.


Linux
  1. Cómo usar expresiones Awk y regulares para filtrar texto o cadenas en archivos

  2. Expresiones regulares:juntándolo todo

  3. ¿En qué se diferencian las expresiones regulares de los comodines utilizados para filtrar archivos?

  4. ¿La definición de una expresión regular?

  5. Bash:¿Expresiones regulares en sustitución?

Introducción a las expresiones regulares

Las 6 mejores herramientas CLI para buscar datos de texto sin formato usando expresiones regulares

Expresiones regulares en Grep (Regex)

¿Por qué `\d` no funciona en expresiones regulares en sed?

¿Cómo usa expresiones regulares con el comando cp en Linux?

¿Cómo excluir archivos del archivo TAR usando expresiones regulares?