MacOS の BSD sed は慣れないので Windows GitBash と同じ GNU sed に変える

BSD UNIX 系の MacOS に搭載されている sed と、Linux や Windows GitBash に搭載されている sed は、オプションの働きが異なる部分が多い。コレが厄介で、sed を利用したスクリプトが Mac と Windows とで同じように動作してくれないのだ。

Windows GitBash を使う機会は多いし、UNIX より Linux の方が当然使うので、MacOS には申し訳ないが、BSD sed ではなく GNU sed で動いてもらうことにする。

GNU sed は Homebrew よりインストールできる。

$ brew install gnu-sed

インストールすると、gsed というコマンドで利用できるようになる。

あとはコレを ~/.bashrc あたりで alias として登録し、sed コマンドを叩いた時に実際は gsed を使うようにしておく。

# ~/.bash_profile か ~/.bashrc あたりで設定する
alias sed='gsed'

もし MacOS の BSD sed を使いたくなったら、以下のように \ を先頭に付与して叩くと、alias の指定を回避できる。

# エイリアスを回避して BSD sed を利用する
$ \sed -i "" 's/original/new/g' example.txt

コレで MacOS でも Windows GitBash と同じ GNU sed が動くようになった。環境の差異を気にしなくて良くなったので楽チン。