2012-03-16 13 views
4

次のsedコマンドは自分のMacで動作しません。私はこのエラーにsedコマンドがMacで動作しない

sed: 1: "./vendor/assets/javascr ...": invalid command code . 
+1

あなたはOSX上でこれをやっている場合、あなたは'sed -i" "'を使ってファイルの名前を変更する必要があります。がんばろう。 – shellter

+0

'-i'はGNUの' sed'機能です。 – FatalError

+0

@shellter:そうです。あなたは答えとしてそれを提出する必要があります、あなたはそれのための信用を得ることができます。 –

答えて

6

-iを取得しています

find . -type f -exec sed -i 's/user_dashboard/user/g' {} \; 

はおそらく、SEDのバージョンでは(ない "インプレース")は異なる意味を持ちます。可能であればgsedを使用するか、-i-eに置き換え、テンポラリファイル(およびそれ以降はmv)を使用してエミュレートしてください。

+1

Macにgsedをインストールする簡単な方法は、[homebrew](http://mxcl.github.io/homebrew/)です。 –

+2

brew install gnu-sed – shabunc

+0

またはMacPortsを使って: '' 'sudo port install gsed''' – RelaXNow

19

sedのOSXバージョンは、ほとんどのLinuxシステムで見られるものと同じではありません。

-iオプションを拡張して、ファイルを別の拡張子で保存することができますが、その拡張子を入力する必要があります。

ファイルを上書きしたい場合は、sed -i "" ...sedCmd.... fileNameを使用してインプレースファイルの名前を変更する必要があります。

@ JamesMcMahonさんのコメントごとにはfull doc for OSX/BSD sedをご覧ください。

こちらがお役に立てば幸いです。

+1

この回答は、答えとしてフラグを立てる必要があります! – florianb

1

テキストファイル内のテキストをmac上でsedでオンザフライで置き換えることができます。

コマンドは少し異なります。

を-iとすると、sedがsed操作の前に元のファイルを保存する拡張子を指定します。

としてコマンドを実行します。

$ sedの-i _bakup -Eさん/ THESTRING/THEGRANDSTRING「/tmp/jestinkt.txt

関連する問題