How can I replace a range with the content of a file, once? Using the sed script
/<start>/,/<end>/{
  d
  r <filename>
}
reads the file into every line. I doesn't need to be done with sed, of course, but I have the feeling that there isn't much missing.
/<start>/r ..to work too.