2015-08-04 1 views
1

У меня есть файл PHP с несколькими вызовами функции my_function(), и я хочу заменить его blah_blah(), просто переименуйте имя функции во всем мире. У меня также есть another_my_function(), и я не хочу его заменять.Заменить все вхождения имени функции PHP в SED

Здесь я создал регулярное выражение:

[^\w\*]my_function\(

Это означает, что префикс должен быть какой-то особый характер, чем имя функции с началом круглого кронштейна. Я заменить его в папку, так что здесь мы идем:

find my_folder_name -type f -exec sed -i 's/[^\w\*]my_function(/blah_blah(/g' {} \; 

Круглый кронштейн не специальный символ для СЭД, поэтому мы не должны избежать этого. Проблема заключается в том, что я уверен, что вы заметили, что она заменит имена функций, включая префиксный символ [^\w\*].

Как заменить только имя функции?

+1

'\ b' вместо этого, для границы слова? –

+0

А что такое полный код? – Vladimir

ответ

0

Это правильное решение, спасибо Marc B!

find my_folder_name -type f -exec sed -i 's/\bmy_function(/blah_blah(/g' {} \; 
Смежные вопросы