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(所定の位置で編集)を使用して移植性を達成するには?

関連情報