【发布时间】:2011-08-09 01:41:14
【问题描述】:
我有一个配置应用程序环境属性的 .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 <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"
我找到了这篇文章,但是我无法为我的情况做这件事。 Replace an XML element's value? Sed regular expression?
我也试过这个:(它失败了,因为改变了所有属性)
sed 's/\(:pro3:\).*/\1 "new value"/'
提前致谢! -- 洛伦科。
【问题讨论】: