Isso é exatamente o que retail faz. retail é a cauda com expressões regulares, uma ferramenta que escrevi exatamente para o caso de uso que você tem aqui. No seu caso, você usaria:
retail -f -r ddddddddddddddd -u hhhhhhhhhhhhhhh logfile > log.tmp
-f é a opção padrão tail -f . -r usa uma expressão regular para iniciar o intervalo de linhas a incluir e -u tem uma expressão regular para continuar até. Começa na última ocorrência do padrão -r e sai depois da impressão da primeira ocorrência do padrão -u depois disso.
Se você quiser começar da primeira instância do padrão, use -b em combinação com -r . Ambas as expressões regulares são EREs , sem nenhuma ancoragem implícita, mas você pode usar ^ e $ para ancorar a partida como de costume.
Você pode obter e criar retail com:
git clone https://github.com/mwh/retail.git
cd retail
./configure
make
make install
Ele é instalado em ~/.local/bin por padrão, mas você pode alterá-lo ou apenas copiar o executável onde quiser.
retail é totalmente compatível com POSIX , embora eu não recomende usar realmente como seu sistema tail .