Existe uma maneira fácil de dividir um arquivo de texto em seções com chave
Estou tentando analisar alguns dados de um arquivo usando Perl & Parse :: RecDescent. Não consigo lançar o arquivo de dados completo no script perl, porque o RecDescent levará dias analisando-o. Então, dividi o enorme arquivo de dados em pedaços do tamanho de RD para reduzir o tempo de execuçã
No entanto, preciso extrair seções entre colchetes balanceados e a rotina que tenho agora não é robusta (depende muito da posição do colchete final de uma nova linha). Exemplo
cell ( identifier ) {
keyword2 { };
...
keyword3 { keyword4 { } };
}
...more sections...
Preciso pegar tudo, desdecell ... {
até o fechamento correspondente}
que pode ter várias quantidades de espaçamento e subseçõe
Deve haver alguma coisa de linha de comando do linux para fazer isso facilmente? Alguma ideia
Edit: os arquivos de entrada têm cerca de 8M, gramática ~ 60 regra