У меня есть файл config.yaml, который содержит среди других значений следующий список брокеров kafka, который я хочу удалить из конфигурации с помощью сценария bash.bash - sed запрос для редактирования файла yaml
kafka.brokers:
- "node003"
- "node004"
Я делаю это в настоящее время, вызывая VI внутри скрипта, используя следующую команду:
vi $CONF_BENCHMARK/config.yaml -c ":%s/kafka.brokers:\(\n\s*-\s".*"\)*/kafka.brokers:/g" -c ':wq!'
Я понимаю, что СЭД является более подходящим инструментом для выполнения той же задачи, но когда Я пытаюсь перевести указанное выше регулярное выражение на sed, он не работает.
sed -i -e "s/kafka.brokers:\(\n\s*-\s".*"\)*/kafka.brokers:/g" $CONF_BENCHMARK/config.yaml
Я делаю что-то неправильно?
'СЭД является более подходящим tool' -> Нет, YAML парсер является более подходящим инструментом :-) YAML является довольно сложным, и не все подходят быть изменены одноранговой с сценариями оболочки и т. п. – Carpetsmoker