【发布时间】:2017-12-17 11:45:11
【问题描述】:
我的JSON文件如下:
{
"Name":"SA",
"Password":"yyyyy",
"Mappings" : {
"RegionMap" : {
"us-east-1" : { "AMI" : "xxxxxx" },
"us-east-2" : { "AMI" : "" },
"us-west-1" : { "AMI" : "" },
"us-west-2" : { "AMI" : "" },
"ca-central-1" : { "AMI" : "" },
"eu-central-1" : { "AMI" : "" },
"eu-west-1" : { "AMI" : "" },
"eu-west-2" : { "AMI" : "" },
"ap-south-1" : { "AMI" : "" },
"ap-southeast-1" : { "AMI" : "" },
"ap-southeast-2" : { "AMI" : "" },
"ap-northeast-1" : { "AMI" : "" },
"ap-northeast-2" : { "AMI" : "" },
"sa-east-1" : { "AMI" : "" }
}
}
}
我的task 是更新给定json 文件中us-east-1 的AMI 键的值。我用jq 解决了这个问题。这是link。我遇到jq 在我的windows 服务器机器上不稳定的问题。所以现在我想使用sed 命令获得相同的结果。
我的expected output如下
{
"Name":"SA",
"Password":"yyyyy",
"Mappings" : {
"RegionMap" : {
"us-east-1" : { "AMI" : "abcd" },
"us-east-2" : { "AMI" : "" },
"us-west-1" : { "AMI" : "" },
"us-west-2" : { "AMI" : "" },
"ca-central-1" : { "AMI" : "" },
"eu-central-1" : { "AMI" : "" },
"eu-west-1" : { "AMI" : "" },
"eu-west-2" : { "AMI" : "" },
"ap-south-1" : { "AMI" : "" },
"ap-southeast-1" : { "AMI" : "" },
"ap-southeast-2" : { "AMI" : "" },
"ap-northeast-1" : { "AMI" : "" },
"ap-northeast-2" : { "AMI" : "" },
"sa-east-1" : { "AMI" : "" }
}
}
}
我在stackoverflow 上提到了许多与此相关的问题,但我无法获得所需的输出。参考问题的链接如下
有人可以帮我解决这个问题吗?还有可能我可以使用环境变量值来替换文件的内容吗?如果有,怎么做?
编辑
我已经用 jq 得到了答案。上面提到了链接。由于 jq 在我的 Windows 服务器机器上不稳定,我正在尝试使用 sed 命令来实现相同的目标。
【问题讨论】:
-
我已经在我的问题中提到了这一点.. jq 在我的 Windows 机器中不稳定,我想使用 sed 命令实现同样的效果