Hi. I have never used any mac. Would you kindly provide details of sed -i behavior so I can update this article accordingly?
BSD sed expects -i to take a file extension so it can save a backup.
Instead of using this:
sed -i YOUR_COMMANDS_HERE foo.txt
you can use something like the following, which will make a backup file and then immediately delete it if the command succeeded:
sed -i.bak YOUR_COMMANDS_HERE -- foo.txt && rm -- "foo.txt.bak"
That looks a little nasty, but it's portable; GNU sed's -i also takes a file extension as an optional argument.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.