sed: изменить значения свойств среды в файле .yml

У меня есть файл .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 со следующим интерфейсом:

$ change_env.sh    

Пример:

$ 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"/'

Заранее спасибо! - Лоуренко.

12
задан Community 23 May 2017 в 12:06
поделиться