2012-08-29 3 views
0

으로 바꿉니다. 해결책을 찾지 못해서 미안합니다. 이전에 대답을 해본 적이 있다면, 나는 껍질이 좋지 않습니다.재귀 검색// 및 '

저는 재귀 적 검색을 수행하고 SSH를 통해 모든 파일을 대체하려고합니다. 이와

$this->helper('catalog/product')->getPriceHtml 

: :이 대체하기 위해 노력하고있어

find . -type f | xargs -d "\n" perl -pi -e 's/$this->helper('catalog/product')->getPriceHtml/$this->getPriceHtml/g' 

:

지금까지 나는이있어

$this->getPriceHtml 

을하지만 나는 그것의 작동하지 않는 생각 슬래시 및 작은 따옴표로 인해 나는 \와 함께 이것들을 벗어나려고 노력했지만 아무런 도움이되지 못했다.

+2

무엇 SSH에서이 모든 관계 되는가? – geoffspear

답변

2

s 연산자에 대한 대체 구분 기호는 피켓 울타리을 피하기 위해 사용할 수 있습니다. $this$이 이스케이프되지 않는 한 변수로 간주됩니다. 괄호도 이스케이프 처리해야합니다. 그렇지 않으면 캡처 그룹을 형성합니다. 한 줄짜리 따옴표가 사용 되었기 때문에 작은 따옴표는 16 진수 이스케이프를 사용하여 인코딩되었습니다. 다음은 작동합니다 :

s{\$this->helper\(\x{27}catalog/product\x{27}\)->getPriceHtml}{\$this->getPriceHtml}g; 

또는 :

s{(?<=\$this)->helper\(\x{27}catalog/product\x{27}\)(?=->getPriceHtml)}{}g; 
+1

유용한 답변을 주셔서 대단히 감사합니다. Alan – user1633416

+0

안녕하십니까. :-) –