Когда вы используете sed
на OS X, и если вы хотите изменить файл на месте с помощью флага -i
, вам необходимо указать расширение для сохранения резервных копий этого файла.
Заканчивать man sed
раздел о -i
флаг:
-i extension
Edit files in-place, saving backups with the specified extension. If a zero-length extension is
given, no backup will be saved. It is not recommended to give a zero-length extension when in-
place editing files, as you risk corruption or partial content in situations where disk space is
exhausted, etc.
Таким образом, правильная команда будет:
sed -i "bak" "s/\\\//g" myFile
И если вы не хотите, чтобы сделать резервную копию файла, вы можете просто написать, как это:
sed -i "" "s/\\\//g" myFile
Если вы хотите сделать свою страницу IPT зависит от платформы, вы можете проверить переменную $OSTYPE
среды для этого:
if [[ "$OSTYPE" == "darwin"* ]]; then
sed -i "" "s/\\\//g" myFile
else
sed -i "s/\\\//g" myFile
fi
Это происходит потому, что OSX не допускает '-i.bak'. Вам нужно указать '-i 'bak''. Есть много таких вопросов, которые сейчас не могут найти. – fedorqui
Возможный дубликат [Получение ошибки с выражением sed] (http://stackoverflow.com/questions/17470697/getting-an-error-with-sed-expression) – fedorqui
Это может быть проблема с оболочкой, вы попробовали sed - i'.bak '? –