我正在尝试进行以下搜索和替换,但由于某种原因它无法正常工作。我想替换:
require_once('
带
require_once($_SERVER['DOCUMENT_ROOT']/'
这些是完全 srings(包括斜线和单引号)。
这就是我的尝试,但我无法让它发挥作用:
find ./ -type f -readable -writable -exec sed -i "s/require_once(\'/require_once($_SERVER['DOCUMENT_ROOT'] . \'\//g" {} \;
我做错了什么?
答案 0 :(得分:5)
您需要转义$
和/
字符:
sed "s/require_once('/require_once(\$_SERVER['DOCUMENT_ROOT']\/'/g"
答案 1 :(得分:0)
你需要反斜杠 - 在双引号内转义美元符号,否则shell会插入(不存在的)环境变量_SERVER
,将其替换为空字符串。