У меня есть файл PHP с несколькими вызовами функций my_function()
и я хочу заменить его blah_blah()
просто переименуйте имя функции везде. У меня также another_my_function()
там, который я не хочу заменить.
Здесь я создал регулярное выражение:
[^\w\*]my_function\(
Это означает, что префикс должен быть каким-то специальным символом, чем имя функции с начальной круглой скобкой. Я заменяю его в папке, так что здесь мы идем:
find my_folder_name -type f -exec sed -i 's/[^\w\*]my_function(/blah_blah(/g' {} \;
Круглая скобка не является специальным символом для sed, поэтому нам не нужно избегать ее.
Проблема, я уверен, вы заметили, что она заменит имена функций, включая символ префикса [^\w\*]
,
Как я могу заменить только название функции?
Вот правильное решение, благодаря Marc B!
find my_folder_name -type f -exec sed -i 's/\bmy_function(/blah_blah(/g' {} \;
Других решений пока нет …