Test Foro de elhacker.net SMF 2.1

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: class_OpenGL en 1 Diciembre 2017, 13:09 PM

Título: (Consulta) Las endemoniadas expresiones regulares
Publicado por: class_OpenGL en 1 Diciembre 2017, 13:09 PM
Hola, muy buenas, me preguntaba si podrían explicarme una expresión regular que me encontré en un Makefile:

Citars/$(BOARD).$(1)=\(.*\)/\1/p

$(BOARD)=mega
$(1)=build.mcu

Esa expresión la ejecuta el siguiente comando:

Citarsed -ne "s/$(BOARD).$(1)=\(.*\)/\1/p" <ruta>

donde <ruta> es la ruta de un archivo de texto (si de paso me explican bien qué hace sed estupendo)

Muchas gracias
Título: Re: (Consulta) Las endemoniadas expresiones regulares
Publicado por: engel lex en 1 Diciembre 2017, 14:18 PM
en tal caso si necesitas explicacion o pruebas, estas paginas son utiles

https://regex101.com/ (https://regex101.com/)
https://regexr.com/ (https://regexr.com/)

sed es una aplicacion que leer un archivo (o stream) linea a linea y aplica regex


sobre los comandos la primera s implica substitución y la ultima p implica imprimir el resultado

de resto sinceramente no entiendo mucho el sentido... creo que es porque sed no parece aplicar el regex por completo (es decir, los $ deberán tener \ al igual que los parentesis, pero más adelante si los tienen)...
Título: Re: (Consulta) Las endemoniadas expresiones regulares
Publicado por: Slava_TZD en 1 Diciembre 2017, 17:10 PM
Substituye $(BOARD).$(1)= por lo que quiera que esté después del =.

Back-references and Subexpressions (https://www.gnu.org/software/sed/manual/html_node/Back_002dreferences-and-Subexpressions.html)
Título: Re: (Consulta) Las endemoniadas expresiones regulares
Publicado por: class_OpenGL en 1 Diciembre 2017, 19:24 PM
Ahhh vale entiendo. Muchas gracias a tod@s!