Вопрос

Я пытаюсь изменить определенные строки в нескольких файлах (разбросанных по вложенным папкам) без необходимости редактировать каждый файл один за другим.Мне его подарил Чез.следующее

perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' *

и это сработало как по волшебству, но мне было интересно, можно ли выполнить эту команду или что-то подобное рекурсивно за один раз

Это было полезно?

Решение

find . -type f -exec perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' '{}' '+'

Это применит его ко всем файлам в текущем каталоге и ко всем подкаталогам.Он не будет следовать символическим ссылкам.Возможно, вы также захотите сузить область действия директивы find с помощью a -name.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top