Я получил текст, который заканчивается на каждой строке .|
И мне нужно заменить .| на каждой 5-й строке с .} 
Я получил текст, который заканчивается на каждой строке .|
И мне нужно заменить .| на каждой 5-й строке с .} 
Если у вас есть доступ к инструментам Unix (включая Cygwin), вы можете сделать это с помощью sed:
sed '0~5s/\.|$/.}/'
как в
sed -i.bak '0~5s/\.|$/.}/' filename
При этом используется форма адреса первого шага sed , что означает «соответствовать каждой строке шага , начиная с первой строки».
Если | всегда предшествует ., как вы говорите, тогда вы можете оставить точки вне команды:
sed '0~5s/|$/}/'