Ответ Стива Пауэлла совершенно верный, консультирование на странице MAN для sed на OSX и Linux (Ubuntu 12.04) подчеркивает совместимость в режиме «на месте» в двух операционных системах.
JFYI, не должно быть пробелов между -i и любыми кавычками (которые обозначают пустое расширение файла), используя версию sed для Linux, таким образом
#Linux
sed -i""
и
#OSX (notice the space after the '-i' argument)
sed -i ""
Я обошел это в скрипт с помощью команды alias'd и вывода OS-имени «uname» в bash «if». Попытка хранить OS-зависимые командные строки в переменных была удалена и пропущена при интерпретации кавычек. Использование «shopt -s expand_aliases» необходимо для расширения / использования псевдонимов, определенных в вашем скрипте. Использование магазина {g3] здесь .