How do I move a line in a text file up or down by one line?

I have some text files, and I’d like to be able to move an arbitrary line in any of the files up or down one line (lines at the beginning or end of the file would stay where they are). I have some working code but it seems kludgy and I’m not convinced I have all the edge cases covered, so I’m wondering if there’s some tool or paradigm that does this better (e.g. easier to understand the code (for other readers or me in 6 months), easier to debug, and easier to maintain; “more efficient” isn’t very important).

Make multiple edits with a single call to sed

I’m trying to use sed to edit a config file. There are a few lines I’d like to change. I know that under Linux sed -i allows for in place edits but it requires you save to a backup file. However I would like to avoid having multiple backup files and make all my in place changes at once.