find . -type f -exec \
perl -i -pe's/my-silly-home-page-name(?=\.html)/index/g' {} +
Или, если ваш find
не поддерживает -exec +
,
find . -type f -print0 | xargs -0 \
perl -i -pe's/my-silly-home-page-name(?=\.html)/index/g'
Оба они передают Perl в качестве аргументов как можно больше имен одновременно. Оба работают с любым именем файла, включая те, которые содержат переводы строк.
Если вы работаете в Windows и используете сборку Perl для Windows (в отличие от сборки Cygwin), -i
не будет работать, если вы не создадите резервную копию оригинала. Измените -i
на -i.bak
. Затем вы можете пойти и удалить резервные копии, используя
find . -type f -name '*.bak' -delete