Tengo un bloque de texto que se parece a esto:usando sed para eliminar un bloque de texto
<!-- BOF CLEAN -->
... a bunch of stuff
<!-- EOF CLEAN -->
me gustaría eliminar esta manzana entera. ¿Cuál es el comando sed?
Tengo un bloque de texto que se parece a esto:usando sed para eliminar un bloque de texto
<!-- BOF CLEAN -->
... a bunch of stuff
<!-- EOF CLEAN -->
me gustaría eliminar esta manzana entera. ¿Cuál es el comando sed?
$ cat text
abc
<!-- BOF CLEAN -->
... a bunch of stuff
<!-- EOF CLEAN -->
def
$ sed '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' text
abc
def
http://www.catonmat.net/blog/sed-one-liners-explained-part-three/
Para eliminar todo el texto a partir de e incluyendo <!-- BOF CLEAN -->
y termina en e incluyendo <!-- EOF CLEAN -->
, el uso siguiente comando sed:
sed -i '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' file_name;
Referencia: Delete text or paragraph between two sections using sed
SED eliminado mi ¡¡archivo!! Hice 'sed '/^0.*$/d' s1d13700.c' que escupió el resultado correcto a la consola, luego hice' sed '/^0.*$/d' s1d13700.c> s1d13700.c' sobrescribir el archivo original con el resultado, ¡y el archivo terminó completamente vacío! –
@ Zom-B Lo que ocurre en 'sed ... s1d13700.c> s1d13700.c' es que el shell primero crea un nuevo archivo vacío' s1d13700.c' antes de ejecutar sed, sobrescribiendo así su archivo de entrada con el mismo nombre. Use 'sed -i.original ... s1d13700.c' para cambiar el archivo in situ y cree una copia de seguridad del archivo original como' s1d13700.c.original'. –