Использовать sed
.
grep -rl smtp1.example.com . | xargs sed -i 's/smtp1.example.com/smtp2.example.com/g'
, что означает поиск всех файлов, содержащих smtp1.example.com
;вывести их имена;передайте каждое имя файла команде sed
, которая выполняет поиск и замену каждого файла.
grep
будет перечислять только те файлы, которые действительно содержат текст;это минимизирует количество файлов, для которых вызывается sed
.(Использование find -type f
приводит к вызову sed
для любого файла.)