
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 -b
obtener 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 -o
salida 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|c
sintaxis 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.