我試圖查找/替換在遍佈目錄樹的許多文件中找到的字符串。查找/替換爲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