Linux Labs

Bash: обработка текста и скрипты / Ступень 2 из 9

sed и awk: правка и поля потока

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 1 из 9 · на машине · 5 мин

Тридцать конфигов

Чему научишься

  • Менять текст командой s в sed и ограничивать замену адресом — шаблоном строки.
  • Править файлы на месте через sed -i.bak и проверять результат grep и diff.
  • Складывать колонку чисел в awk и считать суммы по каждому значению поля, задав разделитель ключом -F.

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

Упражнение · посмотреть

Запусти замену коллеги

В ~/sed-lab/conf запусти замену коллеги на site-01.conf, а потом посмотри сам файл.

Сначала предположи

Что напечатает sed?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа
Проверь себя 1 вопрос

Если записать замену коллеги во все тридцать файлов, на какой адрес укажут строки отката?

  • Строки sed не удалял: в его выводе строка отката на месте, с новым адресом.

  • В выводе sed строка отката уже с 10.0.0.9: замена прошла и по ней.

  • Команда s ставит новый текст на место совпадения: в выводе строка отката с одним адресом, 10.0.0.9.

Строка отката указала бы на новый сервер, и откатываться стало бы некуда.

Ubuntu 24.04
Загрузка…