Tubería PCRE grep en sed

Tubería PCRE grep en sed

Quiero enviar este archivo, pero el BRE en sed no funciona tan bien como espero.

Lo que tengo ahora es básicamente solo:

$ cat Dungeon | grep -P -o '<\/.*?>'

Mi pregunta es ¿cómo envío esto? Quiero quitar las piezas que he logrado agarrar. Las alternativas también son bienvenidas; aunque, si es posible, también quiero saber cómo solucionar esto.

(Sí, estoy usando expresiones regulares en HTML)

Respuesta1

Utilice la herramienta "PCRE sed":

cat Dungeon | perl -pe 's/<\/.*?>//g'

perl -i -pe 's{</.*?>}{}g' Dungeon

Es poco probable que se combine grep y sed; los dos no intercambian suficiente contexto para pasar coincidencias existentes con su posición en el archivo. Podrías intentar grep -bobtener los desplazamientos de bytes de cada coincidencia (y usarlos conalgo más que sedpara eliminar los rangos de bytes correspondientes del archivo), o intente transformar la grep -osalida a una expresión regular monstruosa adecuada para las expresiones regulares POSIX extendidas de sed (cambiando los saltos de línea a tuberías para la a|b|csintaxis de bifurcación, asegurándose de escapar de todos los caracteres especiales de expresiones regulares, lo que necesita otro ' sed' por sí sola), pero cualquiera de las dos supondría mucho más esfuerzo de lo que vale la pena.

información relacionada