Mac OS X のローカルで sed が実行されないケース
ssh 接続して一括置換で使っていたコマンドが
ローカル環境で使えなかったのでメモ。
サーバー上で一括置換を行う際は
find directory -name "*.filetype" | xargs grep -l serchword | xargs sed -i 's/serchword/replaceword/g'
で行っていました。
ですが、ローカルのファイルに対して上記を使っても
sed: 1: "検索でヒットしたファイル": invalid command code .
といったエラーが出てきて実行されない...
調べたら、下記に答えが載っていました。
「Sed: ‘sed: 1: invalid command code R’ on Mac OS X」
http://www.markhneedham.com/blog/2011/01/14/sed-sed-1-invalid-command-code-r-on-mac-os-x/
オプションコマンド「 -i 」の後ろに「""」を置いたら実行できました!
find . -name "*.php" | xargs grep -l kkaneko | xargs sed -i "" 's/kkaneko/green/g'