У меня есть имя функции с ошибкой, и я хочу изменить его. Функция вызывается во многих местах проекта.
Как я могу сделать это с помощью команды Linux на SUSE?
У меня есть имя функции с ошибкой, и я хочу изменить его. Функция вызывается во многих местах проекта.
Как я могу сделать это с помощью команды Linux на SUSE?
Вы можете использовать комбинацию find
, xargs
и sed
:
find ./ -type f -name "*.php" | xargs sed -i 's/\<oldfunction\>/newfunction/g'
Вариант с Perl:
find . -type f -name "*.php" -print0 | xargs -0 perl -pi.bak -e 's/oldfunction/newfunction/g'
Преимущество этого состоит в том, что Perl создаст файлы резервных копий (с расширением .bak
), так что если вы все испортите, вы сможете вернуться.
(Параметр -print0
для поиска и параметр -0
для xargs необходимы, только если у вас есть файлы или каталоги с пробелами в них.)
Это то же самое, что и решение Джона Т:
find ./ -type f -name "*.php" -exec sed -i 's/\<oldfunction\>/newfunction/g' {} \;
Я обычно не обращаюсь к xargs
РЕДАКТИРОВАТЬ: дороже .... по комментариям ниже.
Дополнение к другим очень хорошим предложениям, уже опубликованным: сделайте резервную копию всего сайта (cp -r /var /www /var /wold) и сделайте там редактирование. Лично я бы переместил измененные файлы, например, в /var /www / changes и протестировал http: //www.sitename.tld/changed, чтобы убедиться, что все сценарии работают, прежде чем начать работу.