Bitbucket管道中的JSON值替换

时间:2019-09-17 21:33:09

标签: bitbucket-pipelines

我有一个JSON文件“ appSettings.json”,其中包含以下内容:

{
  "Branch": {
    "Name": "test"
  },
}

我的问题是,在运行bitbucket管道时如何将“ Branch.Name”值设置为其他值?

2 个答案:

答案 0 :(得分:1)

在选中this question后将其显示出来。

- apt-get update
- apt-get install -y jq # install jq
- tmp=$(mktemp)
- jq '.Branch.Name = "prod"' appsettings.json > "$tmp" && mv "$tmp" appsettings.json

答案 1 :(得分:0)

您可以使用标准的Bash / Shell命令在文本文件中执行“查找和替换”操作:

使用sed

sed -i -e 's/"test"/"prod"/g' appSettings.json

# Delete the unwanted backup file, created by sed
if [ -e appSettings.json-e ]
then
    rm appSettings.json-e
fi

使用echo进行Bash字符串替换

如果您需要替换为sed无法处理的特殊字符,例如“ /”和“ \”,请使用此选项。

file_contents=$(< appSettings.json )
echo "${file_contents//\"test\"/\"prod\"}" > appSettings.json

更多信息和来源:Find and Replace Inside a Text File from a Bash Command