Бэкенд сайтов переезжает с 10.0.0.5 на 10.0.0.9. В каталоге ~/sed-lab/conf тридцать конфигов, и в каждом адрес записан дважды: в строке backend= и в строке отката # rollback:. Строку отката не меняют — по ней вернут старый адрес, если переезд не удастся. Открывать тридцать файлов в редакторе долго, и коллега предлагает одну команду sed. Запусти её на первом файле.
Запусти замену коллеги
В ~/sed-lab/conf запусти замену коллеги на site-01.conf, а потом посмотри сам файл.
Сначала предположи
Что напечатает sed?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
Если записать замену коллеги во все тридцать файлов, на какой адрес укажут строки отката?
-
Строки sed не удалял: в его выводе строка отката на месте, с новым адресом.
-
В выводе sed строка отката уже с 10.0.0.9: замена прошла и по ней.
-
Команда s ставит новый текст на место совпадения: в выводе строка отката с одним адресом, 10.0.0.9.
Строка отката указала бы на новый сервер, и откатываться стало бы некуда.