2016-04-22 73 views
0

私はSED:-e式#1、CHAR 32:: `s'が

sed -i -e 's/# elasticsearch.url: "http://localhost:9200"/elasticsearch.url: "http://myOwnHost:9200"/g' config/kibana.yml 

が、私として既存のファイルに一行を交換しようとしていますに未知のオプションファイルの行、sedのを交換カントエラーが発生する

sed: -e expression #1, char 32: unknown option to `s' 

ここで、どのように脱出するかを知ることができます。私はsedにかなり新しいです。

答えて

2

sed文では、/文字はセパレータとして使用されます。例えばs/search/replace/g。あなたの文字列に/があるので、それは物事を台無しにしています。セパレータとして通常/が使用されていますが、他の文字を使用できます。あなたの場合、私はパイプ|を使用します。 s|search|replace|g。代わりに/を使用し、文字列のスラッシュをエスケープすることもできます:\/しかし、それは乱雑になります。

+0

私は '#'をエスケープする必要がありますか? – AbtPst

+1

あなたのセパレータとして '#'を使うことを決断しない限り、これは別の一般的な選択肢です。 – dan08

+0

ありがとう!それは働く – AbtPst

0

バックスラッシュでスラッシュ文字をエスケープする必要があります。

sed -i -e 's/# elasticsearch.url: "http:\/\/localhost:9200"/elasticsearch.url: "http:\/\/myOwnHost:9200"/g' config/kibana.yml 
関連する問題