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

您需要转义$and/字符:

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

您需要在双引号内对美元符号进行反斜杠转义,否则 shell 会插入(不存在的)环境变量_SERVER,并将其替换为空字符串。

于 2013-01-10T18:39:13.553 回答