Предупреждение: это определенно не самый простой способ сделать это. (РЕДАКТИРОВАТЬ: Bash работает; POSIX grep тоже хорошо)
Если основной текст находится в файле "main", а сгенерированный контент - в файле "gen", вы можете сделать следующее:
#!/bin/bash
BEGIN_GEN=$(cat main | grep -n '### BEGIN GENERATED CONTENT' | sed 's/\(.*\):.*/\1/g')
END_GEN=$(cat main | grep -n '### END GENERATED CONTENT' | sed 's/\(.*\):.*/\1/g')
cat <(head -n $(expr $BEGIN_GEN - 1) main) gen <(tail -n +$(expr $END_GEN + 1) main) >temp
mv temp main