If you are familiar with the
sed command on Linux then you might be in for an unpleasant surprise the first time you try to use it on Mac OS.
Mac OS runs the BSD version of the
sed command. As such, there are some syntax differences.
An example of a classic
sed command, that is used in build scripts everywhere:
sed -i 's/WORD/REPLACEMENT' file.txt
If you run that command on Mac OS you will be very grumpily greeted with the error:
sed: 1: "file.txt": command expects \ followed by text
Oh right, this is the BSD version of
You could fiddle with the command until you find something that works on Mac OS. Then you have to ensure it still works on your Linux machines as well.
Or, you could bypass the issue and install the GNU sed via Homebrew.
I choose the second option. It is easier and none of my build scripts will require changes. It can be installed with:
brew install gnu-sed
After install, there will be a new command called
gsed. This is great, but still requires updating everything using
sed. Simple fix, alias sed in your shell profile. I am still a bash user, so I edit
~/.bash_profile and add the line:
Source the profile file and voila, the familiar
sed version has been restored for you on Mac OS!