С GNU awk для нескольких символов RS:
$ awk -v RS='(^|\n)=+\n' 'NR==2' file
v2.0.0
Added feature 3
Added feature 4
С любым другим awk эквивалент будет длиннее:
$ awk '
/^=+$/ { prt(); next }
{ rec=rec $0 ORS }
END { prt() }
function prt() { if (++nr==2) printf "%s", rec; rec="" }
' file
v2.0.0
Added feature 3
Added feature 4
Обратите внимание, что вышеприведенное будет работать для печати любого количества записей, а не только 2-й, просто путем изменения 2 на любой номер записи, который вы хотите распечатать, и вы можете тривиально добавлять / изменять условия, например, только печать записи, если она содержит некоторые строка вместо или в дополнение к основанным на номере записи, например распечатать 17-ю запись, если она содержит foo
:
awk -v RS='(^|\n)=+\n' 'NR==17 && /foo/' file
Объяснение: Ваши записи разделены ===
строками, поэтому установите разделитель записей RS
на регулярное выражение, соответствующее этому описанию, а затем просто напечатайте запись, когда количество записей (NR
) достигнет нужного вам числа. то есть 2 (потому что перед первой строкой ===
есть нулевая запись).