BSD sed
Macの標準のsed
はBSDのsed
でGNUのsed
とはオプションが異なる。
例えば-i
オプションでファイルを編集する場合、BSDのsed
では-i
オプションに引数が必要となる。
LinuxとMacで共通のスクリプトを書きたい場合にオプションの違いが邪魔になるのでできるだけ共通のコマンドを使いたい。
gnu-sed
HomebrewでインストールできるGNUのsed
を使うとBSDのsed
と同じオプションで使える。
$ brew install gnu-sed
コマンドはgsed
としてインストールされるので、sed
の代わりにgsed
を使う。gsed
を使えばBSDのsed
と同じオプションで使える。
例えば-i
オプションでファイルを編集する場合は以下のように引数無しで使える。
$ gsed -i 's/old/new/g' file.txt
alias
BSDのsed
が必要無い場合は.bashrc
や.zshrc
でsed
をgsed
にaliasしておくと便利。
alias sed='gsed'
\第一線のプログラマーの行動原理を学べる!/