Se você tiver acesso a ferramentas Unix (incluindo o Cygwin), você pode fazer isso com sed
:
sed '0~5s/\.|$/.}/'
como em
sed -i.bak '0~5s/\.|$/.}/' filename
Isso usa o primeiro formulário de endereço de sed
primeiro ~ passo ,
o que significa "corresponder a cada etapa 'linha começando com a linha primeiro ."
Se o |
for sempre precedido por um .
, como você diz,
então você pode deixar os pontos fora do comando:
sed '0~5s/|$/}/'