私の OSX マシンでは、インプレース sed のバックアップ文字として ~ を使用できません。他のキャラでもいいです。私が得るエラーは... cryptic:rename(): Not a directory
です。
例:
$ echo foo > bar
$ sed -i ~ -e s/foo/hello/ bar
sed: rename(): Not a directory
$ ls -1
bar
$ cat bar
foo
$ sed -i _ -e s/foo/hello/ bar
$ ls -1
bar
bar_
$ cat bar
hello
$ cat bar_
foo