Как выполнить рекурсивный поиск и замену (только с помощью bash)

find ./ -type f -name "somefile.txt" -exec sed -i -e 's/foo/bar/g' {} \;


Команда find ./ -type f -name "somefile.txt" -exec sed -i -e 's/foo/bar/g' {} \; выполняет рекурсивный поиск файлов с именем «somefile.txt» в текущем каталоге и его подкаталогах. Для каждого найденного файла она использует sed для замены всех вхождений «foo» на «bar» и сохраняет изменения непосредственно в файлах. Аргументы: ./ — текущий каталог, -type f — только файлы, -name "somefile.txt" — файлы с указанным именем. Альтернативы: можно использовать другие инструменты для замены текста, такие как awk или perl.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *