macOS(OS X)のsedはBSD系UNIXのためGNU(System V系UNIX) sedと振る舞いが異なる。
上書き保存のときはバックアップファイルの拡張子を指定する必要がある。
1 |
$ sed -i '.bak' 's/Alice/Bob/' greeting.txt |
実行結果
- greeting.txt : 編集(置換)実行後のファイル
- greeting.txt.bak : 編集(置換)実行前のオリジナル(バックアップ)ファイル
-
※編集(置換)が実行されないケースでも編集後のファイルのタイムスタンプは更新されて、バックアップファイルが作成される。
下記のようにバックアップファイルの拡張子を指定しなければ、バックアップファイルは作成されない。
1 |
$ sed -i '' 's/Alice/Bob/' greeting.txt |