如何将linux sed命令转换为bsd

如何将linux sed命令转换为bsd

如何在 macOS 终端上实现此功能?

sed -i 's/config.action_mailer.default_url_options =.*$/config.action_mailer.default_url_options = {:host => "localhost:3000"}/g' config/environments/development.rb
sed: 1: "config/environments/dev ...": command c expects \ followed by text

答案1

您遇到的问题是,后面的下一个参数-i被用作添加到源文件的备份副本的字符串。正确的语法如下:

sed -i '.BAK' 'command' file

缺少的.BAK留下下一个参数:config/…作为要执行的命令,并且 sed 尝试(并失败)执行该c命令( 的第一个字母command)。

所以,这是一个完全相同的副本如何使用 sed -i (就地编辑)实现可移植性?

相关内容