我试图查找/替换在遍布目录树的许多文件中找到的字符串。查找/替换为sed会产生意想不到的结果
我以为我会用sed来完成这个任务。
find /some/dir -name \*.php -exec sed -i "s/cybernetnews/cybernet/g" {} \;
这个工作过程与样本串预期“cybernetnews”,但事情变得奇怪,当我尝试查找/替换针对此字符串:
preg_match($_SESSION['infos']['num'], $numeric_variable)
哪里要替换字符串$_SESSION['infos']['num']
常数INFOS_NUM
。
所以,我想这会工作:
find /some/dir -name \*.php -exec sed -i "s/$_SESSION['infos']['num']/INFOS_NUM/g" {} \;
没有运气,这里是显示在测试PHP文件运行上面的命令后:
preg_match($_SESSION['INFOS_NUMfoINFOS_NUM][INFOS_NUMum'],
$INFOS_NUMmeric_variable)
我试图逃避单引号,但得到完全相同的结果。如果我逃过支架,则不做任何更改。
什么字符是sed
挂掉了,我该如何正确地逃脱它?
可能重复的[桑达 - 具有可变充满怪异字符替换的字符串](http://stackoverflow.com/questions/21535046/sed-replacing-a-string-with-a-variable-全怪的字符) – NeronLeVelu 2015-02-12 06:47:09
请解释downvote。 – 2015-02-12 18:41:38
对不起,不是我的 – NeronLeVelu 2015-02-13 06:59:50