ターミナルツイート知らないとはまる方もいると思いますの書いています。スポンサーリンクMacはBSD系のsed、LinuxはGNUのsedMacに入っているsedはBSD系で、LinuxはGNUのsedとなり、動作が異なるので注意が必要です。Macのsedでは、iオプションの後ろに必ずバックアップ用拡張子をつける必要Linuxの時と同じように、上書きを前提にMacでsedコマンドを実行すると下記のようにエラーとなります。-iオプションの使い方が異なるので、最初ははまりました。textMacのsedのmanにも説明があるのですが、Macのsedの場合は、-iオプションの後に、必ずバックアップ用の拡張子をつける必要があります。そこで、下記のように-iオプションの後に拡張子をつけると、実行できます。in.txtlsコマンドで見ると、.bakの拡張子のついたバックアップファイルが生成されているのが確認できます。lsin.txtin.txt.bakスポンサーリンクMacのsedで、上書きする場合は?Macのsedのmanにも記載がありますが、-iオプションの後ろに空文字を指定することで、上書きすることができます。lsコマンドで見ると、バックアップファイルが生成されないことが確認できます。lsin.txthomebrewでGNUのsedをインストールただ、世の中の情報としてはGNUのsedに関する情報が多いです。調べる時なども、GNU版sedの情報が真っ先に出てくると思うので、普段からGNUのsedを使うようにしていたほうが楽だと感じています。そこで、homebrewでGNUのsedをインストールして使っています。下記のようにbrewでGNUのsedをインストールします。gnu-sedインストール後、下記のようにgsedコマンドと実行することにより、LinuxのGNU版sedと同様の動作となります。実行することで、エラーが起きずに正常動作するようになります。in.txtgsedをsedとタイプして使えるようにalias設定Linuxと同様に、sedと実行することで、GNUのsedが実行されるようにalias設定します。下記のalias設定を追加します。sed='gsed'下記を実行して、~/.bashrcを読み込みます。~/.bashrcすると、下記のようにLinuxのGNUのsedと同様に、-iオプションに何も設定しないと、結果が上書きされます。Macでもsedと実行することで、Linuxと同様の動作をさせることができます。