sed: cambia los valores de las propiedades de un entorno en un archivo .yml

Tengo un archivo .yml que configura las propiedades del entorno de una aplicación, como esta:

env1:
  :prop1: "value1"
  :prop2: "value2"
        ...
  :propn: "valuen"

env2:
  :prop1: "value1"
  :prop2: "value2"
  :prop3: "value3"
        ...
  :propn: "valuen"

    ...

envn:
  :prop1: "value1"
  :prop2: "value2"
        ...
  :propn: "valuen"

Me gustaría producir un script bash con la siguiente interfaz:

$ change_env.sh <environment> <property> <new value> <file.yml>

Ejemplo

$ change_env.sh env2 prop3 "this value was changed" file.yml

La salida será:

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"

Encontré esta publicación, sin embargo, no pude hacerlo funcionar para mi caso. @ ¿Reemplazar el valor de un elemento XML? ¿Expresión regular de Sed?

También probé esto: (falla porque altera todas las propiedades)

sed 's/\(:pro3:\).*/\1 "new value"/'

¡Gracias por adelantado! - Lourenco.

Respuestas a la pregunta(5)

Su respuesta a la pregunta