2013年2月20日

【Mac】sedコマンドで上書き保存



Macのコマンドはオプションの若干の違いがあり、面倒ですね。

ちょっとずつ分かった事はメモしていきます。


今回、sedの上書き保存でハマりました。

まずは、
$ sed -i.bak -e s/TAG/tag/g src/com/shonanshachu/app/MainActivity.java

とコマンドを叩いてみました。
MainActivity.java.bakの作成と、
TAGをtagに書き換え、上書き保存したファイルが出来上がりました。

次に、そのまま上書きしたかったので、

$ sed -i -e s/TAG/tag/g src/com/shonanshachu/app/MainActivity.java
.bakを抜いてみました。
すると、MainActivity.java-e
というファイルが出来てしまう。

なぜ???全然理由が分からず彷徨っていると、
Macは-iを指定しないといけない。
なので、そのまま上書き保存したい場合は

$ sed -i "" -e "s/TAG/tag/g" src/com/shonanshachu/app/MainActivity.java

とすると、綺麗に上書き保存されました。

めでたしめでたし。