Eu edito isso se você atualizar a pergunta, mas eu acho que você está procurando por algo assim:
perl -007lne '@F=(/-{7,}.*?Table:.*?\n(?=\n)/gsm); print join "\n", @F' file.tex
Explicação
-
-007
: sorve o arquivo inteiro -
-lne
: inclua um novol
ine em cadaprint
call, processe o arquivo de entrada e execute o script fornecido por-e
. -
@F=(/pattern/gsm)
: salva todas as correspondências depattern
na matriz@F
. Og
ativa a correspondência global, as
torna.
newlines e am
faz com que o operador de correspondência corresponda em várias linhas. -
-{7,}.*?Table:.*?\n(?=\n)
: corresponde a 7% ou mais-
, então até o 1ºTable:
(.*?Table:)
, então qualquer coisa até as duas primeiras novas linhas consecutivas (.*?\n(?=\n)
). Estou usando uma visão inicial apenas para evitar a impressão de ambos novas linhas. -
print join "\n", @F
: imprime cada elemento da matriz@F
, separando-os com novas linhas.