macOS標準添付 sed コマンドはGNU拡張非対応のため、下記のようなワンライナーが期待通り動作しない。
$ find . -name "pattern" | xargs sed -i "s/old/new/g"
Homebrew経由でインストールされるGNU sed (gsed
)を導入し、標準 sed コマンドより探索優先度を上げる。(オリジナルを呼び出す場合は/usr/bin/sed
)
$ brew install gnu-sed
$ echo 'export PATH="/usr/local/opt/gnu-sed/libexec/gnubin/:$PATH"' >> ~/.bashrc
2019年1月現在、一部記事で紹介されているbrew install時の--with-default-names
オプションは機能しない模様。
動作環境
- macOS 10.14.3
- GNU sed 4.7