なんか動きが変だなあと思ったら、OS XのsedはGNU sedじゃないってオチでした。
$ sed -i s/enabled=1/enabled=0/g hoge.repo sed: 1: "hoge.repo": invalid command code . $ sed -i s/enabled=1/enabled=0/g ~/Downloads/hoge.repo sed: 1: "/Users/ytooyama/Downloa ...": transform strings are not the same length
参考サイト: qiita.com shunirr.hatenablog.jp
なので、参考サイトにあるように、Macのsedとお友達にならずにHomebrewでgnu-sedを入れてお茶を濁すことにしました。
おでは-iオプションが使いたかっただけなんじゃあー。
$ brew update $ brew install gnu-sed
ただ、これだけだとパスが通っていないので、こちらのページを参考に、.bash_profileにパスを書いてパスを通しました。
$ vi ~/.bash_profile ... export MANPATH="/usr/local/opt/gnu-sed/libexec/gnuman:$MANPATH" export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
sourceコマンドでパスを反映させます。
$ source ~/.bash_profile
私のMacにGNU sedがやってきました。これで安心してMacでsedおじさんになることができます。
ちなみにパスを通すのが面倒くさければgsedコマンドを打つのでも対応可能みたいです(gsedはGNU sedのエイリアスらしい)。ただパスを通さないで忘れてsedコマンドを打ってしまうと残念な結果になりますけど。
$ sed --version sed (GNU sed) 4.2.2 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Jay Fenlason, Tom Lord, Ken Pizzini, and Paolo Bonzini. GNU sed home page: <http://www.gnu.org/software/sed/>. General help using GNU software: <http://www.gnu.org/gethelp/>. E-mail bug reports to: <bug-sed@gnu.org>. Be sure to include the word ``sed'' somewhere in the ``Subject:'' field