Рекурсивное Массовое редактирование в Linux
Вопрос
Я пытаюсь изменить определенные строки в нескольких файлах (разбросанных по вложенным папкам) без необходимости редактировать каждый файл один за другим.Мне его подарил Чез.следующее
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.
Не связан с StackOverflow