Aquí hay uno en awk:
$ awk '/^=+$/{f=!f;if(f==1)next;else if(f==0)exit}f' file
v2.0.0
Added feature 3
Added feature 4
En letra bonita:
$ awk '/^=+$/ { # at ===...
f=!f # flag state is flipped
if(f==1) # if its one (first ===...)
next # next record
else if(f==0) # if zero (second ===...)
exit # nothing more to do yeah
}
f' file # print
Aquí hay otro en GNU sed:
$ sed -n '/^=\+$/,//{//!p;b};q' file
v2.0.0
Added feature 3
Added feature 4
/^=\+$/,//
es una abreviatura de/^=\+$/,/^=\+$/
, selecciona las líneas entre dos líneas que consisten en signos iguales inclusive, y los comandos entre llaves siguientes se ejecutan para estas líneas,//!p
es una abreviatura de/^=\+$/!p
, significa que si la línea entrante no es una de las que consisten solo en=
s, imprimirlo,b
significa ir al final del ciclo (es decir, pasarq
),q
es para salir de sed después de imprimir las líneas seleccionadas.
La siguiente versión funcionará con todos Seds compatibles con POSIX pero se ve 2 veces más críptico:
sed -n -e '/^=\{1,\}$/,//{//!p;b' -e '}' -e 'q' file
Tenga en cuenta que estos no funcionarán si hay dos consecuentes todos =
líneas en la entrada.
¿Podría intentar seguirme también?
awk '/^=/{count++;next} count>=2{exit} {print}' Input_file