2011-08-04 16 views

Respuesta

35
$ 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/

+0

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! –

+6

@ 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'. –

3

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

Cuestiones relacionadas