我有带有/* TEST */
等标志的php文件。
在脚本中,我有带有此标志的变量和要替换的值:
test="defined('_TEST') or die('Test test');"
testPattern="/* TEST */"
我的代码未返回任何错误,但未替换标志:
find . -name "*.php" -exec sed -i -e 's/"$testPattern"/"$test"/g' {} \;
答案 0 :(得分:3)
您的sed字符串用单引号引起来。在那里不发生变量扩展。切换到双引号:
find . -name "*.php" -exec sed -i -e "s/$testPattern/$test/g" {} \;
答案 1 :(得分:0)
用单引号引起来的字符将保留引号中每个字符的字面值。
尝试这个:
sed -i '' "s~$testPattern~$test~g" $(find . -name '*.php')