Zde je jeden v awk:
$ awk '/^=+$/{f=!f;if(f==1)next;else if(f==0)exit}f' file
v2.0.0
Added feature 3
Added feature 4
V pěkném tisku:
$ 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
Zde je další v GNU sed:
$ sed -n '/^=\+$/,//{//!p;b};q' file
v2.0.0
Added feature 3
Added feature 4
/^=\+$/,//
je zkratka pro/^=\+$/,/^=\+$/
vybere řádky mezi dvěma řádky, které se skládají včetně znaménka rovná se, a pro tyto řádky se provedou příkazy mezi následujícími složenými závorkami,//!p
je zkratka pro/^=\+$/!p
, to znamená, pokud příchozí linka není jedna z těch, které se skládají pouze z=
s, vytiskněte,b
znamená přejít na konec cyklu (tj. projítq
),q
slouží k ukončení sed po vytištění vybraných řádků.
Následující verze bude fungovat se všemi Sedy vyhovující POSIX, ale vypadají 2x záhadněji:
sed -n -e '/^=\{1,\}$/,//{//!p;b' -e '}' -e 'q' file
Všimněte si, že tyto nebudou fungovat, pokud budou dva následující všechny =
řádků na vstupu.
Můžete prosím také zkusit sledovat.
awk '/^=/{count++;next} count>=2{exit} {print}' Input_file