2012-03-07 7 views
0

$ _SERVER ['DB_NAME']をsedを使って単語testだけに置き換えたいとします。私はそれを把握することはできません。私は$と括弧をエスケープしています...なぜ私は正しい結果を得ていませんか?文字列置換はエスケープしませんか?

echo "\$_SERVER['DB_NAME']" | sed 's/\$_SERVER\['DB_NAME'\]/test/g' 

答えて

0

私は愚かな感じ。この

echo "\$_SERVER['DB_NAME']" | sed "s/\$_SERVER\['DB_NAME'\]/test/g" 

または

echo "\$_SERVER['DB_NAME']" | sed 's/\$_SERVER\['"'"'DB_NAME'"'"'\]/test/g' 
+0

を試すことができます。だからシンプルな解決策。ほとんどのsedの例は一重引用符で書かれているので、私はそれをそのように書いているうわべに入っています。二重引用符を作ることは理にかなっています。ありがとう。 – user983223

0

sedコマンドと'DB_NAME'の両方に単一引用符を使用しています。 sedコマンドラインの引用符を二重引用符に変更するか、または内部引用符をエスケープしてください。

関連する問題