Error de RE: operando del operador de repetición no válido

Error de RE: operando del operador de repetición no válido

Recibo este error

Error de RE: operando del operador de repetición no válido

En FreeBSD sed, usando csh.

El comando es:

sed -rn 's/.*?VIEW ([^\s]+?) (AS .*?)\s([^\s]+?)\s([^\s]+?)/DROP VIEW \1;\nCREATE VIEW \1 \2;/p'

He vistoesta preguntapero no tengo ninguna *+s, pero sí tengo algunas *?s, pero se supone que eso significa no codicioso. ¿Qué estoy haciendo mal?

Respuesta1

Ya se mencionó en los comentarios a la pregunta, pero para que la respuesta sea más explícita:

La coincidencia no codiciosa no está disponible en sed, ya sea utilizando el modo de expresión regular estándar o extendido.

Si conoces el personaje que debería terminar la partida, puedes usar la siguiente técnica, como se encuentra aquí:https://0x2a.at/blog/2008/07/sed--non-greedy-matching/

Coincidencia codiciosa:

$ echo "<b>foo</b>bar" | sed 's/<.*>//g'
bar

Coincidencia no codiciosa:

$ echo "<b>foo</b>bar" | sed 's/<[^>]*>//g'
foobar

información relacionada