У меня есть .yml файл, который настраивает свойства среды приложения, например:
env1:
:prop1: "value1"
:prop2: "value2"
...
:propn: "valuen"
env2:
:prop1: "value1"
:prop2: "value2"
:prop3: "value3"
...
:propn: "valuen"
...
envn:
:prop1: "value1"
:prop2: "value2"
...
:propn: "valuen"
Я хотел бы создать bash script со следующим интерфейсом:
$ change_env.sh <environment> <property> <new value> <file.yml>
Пример:
$ change_env.sh env2 prop3 "this value was changed" file.yml
Выход будет:
env1:
:prop1: "value1"
:prop2: "value2"
...
:propn: "valuen"
env2:
:prop1: "value1"
:prop2: "value2"
:prop3: "this value was changed"
...
:propn: "valuen"
...
envn:
:prop1: "value1"
:prop2: "value2"
...
:propn: "valuen"
Я нашел этот пост, однако я не мог сделать это для моего дела. Заменить значение элемента XML? Регулярное выражение Sed?
Я также пробовал это: (он терпит неудачу, потому что изменяет все свойства)
sed 's/\(:pro3:\).*/\1 "new value"/'
Спасибо заранее! - Лоренко.