我試圖做一個複雜的查找和通過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.
我如何得到這個更換工作?
命令不「思考」。他們知道*。 – alestanis 2013-03-08 17:13:55
當shell插值是一個問題時,只需使用一個文件來保存你的正則表達式並運行'xargs perl -pi file.pl' – TLP 2013-03-08 17:25:47