Alojamiento gratuito en línea para estaciones de trabajo

<Anterior | Contenido | Siguiente>

POSIX Básico vs. Expresiones regulares extendidas

Justo cuando pensamos que esto no podría ser más confuso, descubrimos que POSIX también divide las implementaciones de expresiones regulares en dos tipos: expresiones regulares básicas (BRE) y expresiones regulares extendidas (ERE). Las funciones que hemos cubierto hasta ahora son compatibles con cualquier aplicación que sea compatible con POSIX e implemente BRE. Nuestro grep El programa es uno de esos programas.

¿Cuál es la diferencia entre BRE y ERE? Es cuestión de metacaracteres. Con BRE, se reconocen los siguientes metacaracteres:

^ $. [] *

Todos los demás caracteres se consideran literales. Con ERE, se agregan los siguientes metacaracteres (y sus funciones asociadas):

() {}? + |

Sin embargo (y esta es la parte divertida), los caracteres “(”, “)”, “{” y “}” se tratan como metacaracteres en BRE if se escapan con una barra invertida, mientras que con ERE, antes de cualquier metacarácter con una barra invertida, se trata como un literal. Cualquier rareza que surja se tratará en las discusiones que siguen.

Dado que las características que vamos a discutir a continuación son parte de ERE, necesitaremos usar una grep. Tradicionalmente, esto ha sido realizado por egrep programa, pero la versión GNU de grep también admite expresiones regulares extendidas cuando el -E se utiliza la opción.


POSIX

Durante la década de 1980, Unix se convirtió en un sistema operativo comercial muy popular, pero en 1988, el mundo Unix estaba en crisis. Muchos fabricantes de computadoras habían obtenido la licencia del código fuente de Unix de sus creadores, AT&T, y estaban suministrando varias versiones del sistema operativo con sus sistemas. Sin embargo, en sus esfuerzos por crear una diferenciación de productos, cada fabricante agregó cambios y extensiones patentados. Esto comenzó a limitar la compatibilidad del software. Como siempre con

POSIX Básico vs. Expresiones regulares extendidas


proveedores propietarios, cada uno estaba tratando de jugar un juego ganador de "encierro" con sus clientes. Esta época oscura en la historia de Unix se conoce hoy como "la balcanización."

Ingrese al IEEE (Instituto de Ingenieros Eléctricos y Electrónicos). A mediados de la década de 1980, el IEEE comenzó a desarrollar un conjunto de estándares que definirían cómo funcionarían los sistemas Unix (y similares a Unix). Estos estándares, formalmente conocidos como IEEE 1003, definen el interfaces de programación de aplicaciones (API), shell y utilidades que se encuentran en un sistema estándar similar a Unix. El nombre "POSIX", que significa Interfaz de sistema operativo portátil (con la "X" agregada al final para darle más agilidad), fue sugerida por Richard Stallman (sí, esa Richard Stallman) y fue adoptado por el IEEE.


Top OS Cloud Computing en OnWorks: