Truco sed: mostrar líneas desde coincidencia hasta final o comienzo del fichero

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

2 comentarios en “Truco sed: mostrar líneas desde coincidencia hasta final o comienzo del fichero

  1. 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,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *