Eccone uno in awk:
$ awk '/^=+$/{f=!f;if(f==1)next;else if(f==0)exit}f' file
v2.0.0
Added feature 3
Added feature 4
In bella stampa:
$ 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
Eccone un altro in GNU sed:
$ sed -n '/^=\+$/,//{//!p;b};q' file
v2.0.0
Added feature 3
Added feature 4
/^=\+$/,//
è una scorciatoia per/^=\+$/,/^=\+$/
, seleziona le linee tra due linee costituite da segni di uguale inclusivi, e i comandi tra le parentesi graffe successive vengono eseguiti per queste linee,//!p
è una scorciatoia per/^=\+$/!p
, significa che la linea in arrivo non è una di quelle che consistono solo di=
s, stampalo,b
significa andare alla fine del ciclo (cioè passareq
),q
serve per uscire da sed dopo aver stampato le righe selezionate.
La seguente versione funzionerà con tutti seds conforme a POSIX ma sembra 2 volte più criptico:
sed -n -e '/^=\{1,\}$/,//{//!p;b' -e '}' -e 'q' file
Nota che questi non funzioneranno se ci sono due conseguenti tutti =
righe nell'input.
Potresti provare a seguire anche tu.
awk '/^=/{count++;next} count>=2{exit} {print}' Input_file