Практическое задание

Эта задача — шаг 18 курса «sed: потоковый редактор»

Приведи ключи конфига к виду переменных

сложно~10 мин

В /etc/app.env ключи записаны в нижнем регистре через дефис (db-host=pg-1.local). Приведи имена ключей к формату переменных окружения: заглавные буквы и подчёркивания вместо дефисов (DB_HOST=pg-1.local). Значения справа от = трогать нельзя — ни регистр, ни дефисы в них.

Что потренируешь:
  • sed
  • \U смена регистра
  • группы захвата
  • цикл ta/:метка
  • in-place -i

Разбор темы

GNU sed расширяет замену управляющими последовательностями регистра: \U/\L включают верхний/нижний регистр до конца замены или до \E, \u/\l действуют на один следующий символ. Отдельный приём — ветвление: метка :a вместе с командой ta («перейти к метке, если последняя подстановка удалась») образует цикл, который повторяет замену до исчерпания совпадений. Он нужен там, где флаг g неприменим — например когда шаблон привязан якорем к началу строки и каждое совпадение меняет то, что стоит слева.

Что проверяется

  1. все ключи — заглавные буквы и подчёркивания
  2. ключи сохранили все части
  3. значения справа от = не изменились

Как это выглядит