我正在尝试通过 unix 命令行使用find and replace in multiple files on command line 中提供的答案在所有文件中进行复杂的查找和替换,但我似乎无法正确转义我的查找和替换字符串。
我需要找到所有包含以下内容的行:
if ($session['test']>0){
并将其替换为
if ($session['test']>1){
我正在尝试的命令是:
find . -name '*.php' |xargs perl -pi -e 's/if\(\$session\[\'test\'\]\>0\){/if\(\$session\[\'test\'\]\>1\){/g'
但这给了我另一个提示,要求我输入一个额外的'
字符,因为该命令告诉我有一个缺少终止符的字符串。如果我把它放在'
最后,我得到:
Unmatched ) in regex; marked by <-- HERE in m/if\(\$session\[\test']>0) <-- HERE {/ at -e line 1.
我如何让这个替代品工作?