4

次の検索と置換を実行しようとしていますが、何らかの理由で機能しません。私は置き換えようとしています:

require_once('

require_once($_SERVER['DOCUMENT_ROOT']/'

これらは正確な文字列です (スラッシュと一重引用符が含まれています)。

これは私が試みたものですが、動作させることができません:

find ./ -type f -readable -writable -exec sed -i "s/require_once(\'/require_once($_SERVER['DOCUMENT_ROOT'] . \'\//g" {} \;

私は何を間違っていますか??

4

2 に答える 2

5

$および/文字をエスケープする必要があります。

sed "s/require_once('/require_once(\$_SERVER['DOCUMENT_ROOT']\/'/g"
于 2013-01-10T18:31:49.973 に答える
0

ドル記号を二重引用符で囲んでバックスラッシュエスケープする必要があります。そうしないと、シェルが(存在しない)環境変数を補間_SERVERして、空の文字列に置き換えます。

于 2013-01-10T18:39:13.553 に答える