Hier ist einer 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
Schön gedruckt:
$ 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
Hier ist ein weiteres in GNU sed:
$ sed -n '/^=\+$/,//{//!p;b};q' file
v2.0.0
Added feature 3
Added feature 4
/^=\+$/,//
ist eine Abkürzung für/^=\+$/,/^=\+$/
, selektiert es die Zeilen zwischen zwei Zeilen, die aus Gleichheitszeichen bestehen, und die Befehle zwischen den folgenden geschweiften Klammern werden für diese Zeilen ausgeführt,//!p
ist eine Abkürzung für/^=\+$/!p
, bedeutet dies, dass die ankommende Leitung nicht zu denen gehört, die nur aus=
bestehen s, ausdrucken,b
bedeutet zum Ende des Zyklus gehen (d.h.q
passieren ),q
dient zum Beenden von sed nach dem Drucken ausgewählter Zeilen.
Die folgende Version funktioniert mit allen POSIX-kompatible seds, aber es sieht 2x kryptischer aus:
sed -n -e '/^=\{1,\}$/,//{//!p;b' -e '}' -e 'q' file
Beachten Sie, dass diese nicht funktionieren, wenn zwei aufeinander folgende alle =
sind Zeilen in der Eingabe.
Könnten Sie bitte auch Folgendes versuchen.
awk '/^=/{count++;next} count>=2{exit} {print}' Input_file