Hoy os dejo otro truco útil del comando sed que permite mostrar el contenido de un fichero a partir de la coincidencia de la expresión o string indicada.
Tenemos por ejemplo un fichero prueba.txt con este contenido:
esto es una prueba para trabajar con sed
Si quisieramos mostrar todo el contenido del fichero a partir (excluyendo la línea con la coincidencia de patrón) de la coincidencia de la línea que tiene «es» haríamos lo siguiente:
$ sed -e '1,/^es$/d' prueba.txt una prueba para trabajar con sed
En este caso conseguimos este comportamiento gracias al selector de rango «1,» con el cual estamos indicando que desde la primera línea de entrada (primera línea del fichero) hasta la coincidencia de la expresión regular (^es$) todo el contenido sea eliminado (/d del final del sed). De este modo imprime por pantalla el resto del contenido del fichero.
También podemos hacer lo contrario, que es que muestre las líneas desde el comienzo del fichero hasta la coincidencia:
$ sed -e '/^una$/,$d' prueba.txt esto es
Buff, es mi receta fetiche. No se ni cuantas veces he tenido que tirar de Google para conseguir esto.
Bueno, concretamente lo que quería conseguir es algo que te voy a pedir desde aquí para guardármelo para «los restos» y que es la mezcla de ambas. Es decir, extraer del fichero desde una marca hasta otra.
Un saludo,
Justo lo publiqué hace unos días
https://rm-rf.es/sacar-texto-entre-dos-stringspalabras-con-sed/