我有一个相当简单的问题,我似乎无法找到解决方案。我想在我网站上的目录中的所有文件中删除包含特定字符串的行。这个字符串包含双引号。我一直试图找到一个使用反斜杠的解决方案,但它不起作用。
我要替换的字符串是:session_register("c$key");
我正在使用这个php和unix代码:
$command = "sed -i '/session_register(\"c$key\")/d;' ./*";
$output = shell_exec($command);
我想删除此行,因为session_register已过时。 它没有做任何事情,但没有给我一个错误。有什么问题或者我应该如何反斜杠?
非常感谢!
答案 0 :(得分:1)
你需要加倍转义$
,因为$
是特殊的正则表达式符号意味着输入结束。对$command
字符串赋值也使用单引号而不是双引号。
试试这个:
$command = 'sed -i.bak \'/session_register("c\\$key")/d;\' ./*';
$output = shell_exec($command);