kenji ブログ

おもにphp,javascript について書いていきます。 日が浅いPGなので、参考よりも指摘・議論用のブログになるかと思います。

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'