Removing Carriage return on Mac OS X using sed
carriage-return, macos, regex, sed
Solution
It is because `sed` available on OSX doesn't recognize `\r` as a special character unlike the `sed` on Linux does.
You can either use it the way you're using:
sed -i.bak $'s/\r//' file
OR this:
sed -i.bak "s/$(printf '\r')//" file
OR else you can use `tr` on OSX:
tr -d '\r' < file
Problem
On Linux for removing carriage return we can execute: ``` sed -i 's/\r//g' <file> ``` But the same will not work on Mac OS X. Need to prepend `$` like: ``` sed -i $'s/\r//' <file> ``` And "g" is also not needed. Why is this so?