jueves, 9 de junio de 2016

Metacaracteres y literales

Aunque puede no parecer evidente, nuestras búsquedas con grep han usado expresiones regulares todo el tiempo, aunque muy simples. La expresión regular "bzip" significa que una coincidencia ocurrirá sólo si la línea del archivo contiene al menos cuatro caracteres y que en algún lugar de la línea los caracteres "b", "z", "i" y "p" se encuentran en ese orden, sin otros caracteres en medio. Los caracteres en la cadena "bzip" son caracteres literales, en el sentido en que coinciden consigo mismos. Además de los literales, las expresiones regulares pueden también incluir metacaracteres que se usan para especificar coincidencias más complejas. Los metacaracteres para las expresiones regulares son los siguientes:

^ $ . [ ] { } - ? * + ( ) | \

Todos los demás caracteres se consideran literales, aunque la barra invertida se utiliza en algunos casos para crear meta secuencias, así como para que los metacaracteres puedan ser "escapados" y tratados como literales en lugar de ser interpretados como metacaracteres.

Nota: Como podemos ver, muchos metacaracteres de expresiones regulares son también caracteres que tienen significado para el shell cuando se realiza la expansión. Cuando pasamos expresiones regulares que contienen metacaracteres en la línea de comandos, es vital que estén entrecomillados para prevenir que el shell trate de expandirlos.

No hay comentarios:

Publicar un comentario