やったこと
sed でテキストの置換処理を調べていたのですが、書いてある通りに動かないことがありました。
それは、BSD と GNU で異なることが原因のようでした。
Mac ではデフォルトでは sed は BSD 版が入っているようです。
今回、以下をやりました。
- GNU 版のインストール
- BSD、GNUの確認方法
調査
GNU 版のインストール
brew でインストールします。
$ brew install gnu-sed
$ gsed --version
gsed (GNU sed) 4.7
Copyright (C) 2018 Free Software Foundation, Inc.
(以下省略)
BSD、GNUの確認方法
$ man sed
出力結果 (抜粋)
SED(1) BSD General Commands Manual SED(1)
NAME
sed -- stream editor
BSD 版が入っていることが確認できました。