Mais fácil fazer com awk
, supondo que os blocos definidos por [
e ]
não contenham [
ou ]
dentro do bloco
$ awk -v b=2 '/\[/{c++} c==b; /]/ && c==b{exit}' ip.txt
[
eighth
]
-
-v b=2
variable para especificar qual bloco é necessário -
/\[/{c++}
contador de incremento se a linha corresponder à condição inicial -
c==b;
imprime o registro de entrada se o contador for igual ao bloco necessário -
/]/ && c==b{exit}
exit na condição final correspondente
outra maneira de escrever isso:
awk -v b=2 '/\[/{c++} c==b{print $0; if(/]/) exit}' ip.txt