PROBLEM
When executing the following command on OS X…
sed -i 's/megatron/pony/g' /path/to/file.txt
… the following error occurs:-
sed: 1: "/path/to/file.txt": extra characters at the end of l command
SOLUTION
Unlike Ubuntu, OS X requires the extension to be explicitly specified. The workaround is to set an empty string:-
sed -i '' 's/megatron/pony/g' /path/to/file.txt
… and now, Megatron has transformed into a pony.
Thanks! That worked for FreeBSD 10.2.
Cheers, appreciated!
Great..!
Thanks
Thank you!
Great tip!
Thanks
Thanks!
Thanks! Got the same issue with error “sed: 1: “hello.txt”: extra characters at the end of h command” so adding the empty ” solved that.
sed -i ” ‘s/FOO/BaR/g’ hello.txt
I can’t still get the following working on macOS Sierra;
`sed -i ” ‘/^$/{N ; /second/D}’ data-with-empty-lines2.txt`
I got it to work but can you explain _why_ that works?
BSD’s sed (used by Mac) is a little different from GNU’s sed. You can get more info from here. That said, you probably can install GNU’s sed on Mac using Homebrew if you wish.