OS X 10.9でローカルWeb開発環境をセットアップし、Homebrewをインストールしました。ガイドの次のステップでは、次のコマンドを使用して~/.bash_profile
にロジックを追加するように指示しています。
echo "export PATH=\$(echo \$PATH | sed 's|/usr/local/bin||; s|/usr/local/sbin||; s|::|:|; s|^:||; s|(.*)|/usr/local/bin:/usr/local/sbin:\1|')" >> ~/.bash_profile && source ~/.bash_profile
ターミナルに入力すると、次のようになります:
sed: 1: "s|/usr/local/bin||; s|/ ...": \1 not defined in the RE
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
に書き込む必要があるのは.bash_profile
ですか?そして、なぜ私はそのエラーを受け取るのですか?
_(.*)
_の代わりに\(.*\)
を使用する必要があります。
sed
は、デフォルトで基本正規表現(BRE)を使用します。これは、Extendedで使用される_\(
_および_\)
_だけでなく、グループのキャプチャに_(
_および_)
_を使用します正規表現(ERE)。式は\(.*\)
の代わりに_(.*)
_を使用したため、グループキャプチャとして認識されず、したがって_\1
_で使用するためにキャプチャされるものはありません。
GNUおよびBSDによって提供されるものなど)の一部のsed
実装には、EREの使用を指定するための拡張機能がありますが、 POSIXでは指定されません であり、移植したい場合は使用できません。