find and replace in multiple files on command line에 제공된 답변을 사용하여 유닉스 명령 줄을 통해 모든 파일에서 복잡한 찾기 및 바꾸기를 시도하고 있지만 찾기 및 바꾸기 문자열을 올바르게 이스케이프 처리하지 못하는 것 같습니다. .유닉스 명령 줄에서 복잡한 찾기와 바꾸기
내가 포함하는 모든 라인을 찾을 필요가 :
find . -name '*.php' |xargs perl -pi -e 's/if\(\$session\[\'test\'\]\>0\){/if\(\$session\[\'test\'\]\>1\){/g'
하지만 그 날을 제공합니다
if ($session['test']>0){
및
if ($session['test']>1){
명령 내가 노력하고있어로 교체하는 것입니다 그 명령이 나를 거기서 알려주기 때문에 다른 문자를 입력해야만하는 또 다른 프롬프트가 나타납니다. 터미네이션이없는 문자열입니다. 마지막에 '
에 추가하면 다음과 같이 표시됩니다.
Unmatched) in regex; marked by <-- HERE in m/if\(\$session\[\test']>0) <-- HERE {/ at -e line 1.
대체품을 어떻게 작동 시키나요?
명령은 "생각하지"않습니다. 그들은 알고있다*. – alestanis
쉘 보간이 문제가되면, 파일을 사용하여 정규 표현식을 잡고'xargs perl -pi file.pl'을 실행하십시오. – TLP