【发布时间】:2020-01-18 19:05:06
【问题描述】:
我有一个 JSON 文件“appSettings.json”,其中包含以下内容:
{
"Branch": {
"Name": "test"
},
}
我的问题是,在运行 bitbucket 管道时如何将值“Branch.Name”设置为其他值?
【问题讨论】:
我有一个 JSON 文件“appSettings.json”,其中包含以下内容:
{
"Branch": {
"Name": "test"
},
}
我的问题是,在运行 bitbucket 管道时如何将值“Branch.Name”设置为其他值?
【问题讨论】:
在检查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
【讨论】:
您可以使用标准 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
如果您需要用 sed 无法处理的“/”和“\”等特殊字符替换,请使用此选项。
file_contents=$(< appSettings.json )
echo "${file_contents//\"test\"/\"prod\"}" > appSettings.json
更多信息和来源:Find and Replace Inside a Text File from a Bash Command
【讨论】: