From the sed
man page:
Normally, sed cyclically copies a line of input, not including its terminating newline character, into a pattern space, (unless there is something left after a “D” function), applies all of the commands with addresses that select that pattern space, copies the pattern space to the standard output, appending a newline, and deletes the pattern space.
It’s operating on the line without the newline present, so the pattern you have there can’t ever match. You need to do something else – like match against $
(end-of-line) or ^
(start-of-line).
Here’s an example of something that worked for me:
$ cat > states
California
Massachusetts
Arizona
$ sed -e 's/$/\
> /' states
California
Massachusetts
Arizona