sed 命令更改 .spec 文件中的值
sed command to change value in .spec file
如何使用 sed 更改 .spec 文件中的值?想要将构建的 $nmatch
值更改为其他值,例如 "build1.1"
.
{
"files": [
{
"aql": {
"items.find": {
"repo": {"$eq":"app-java-repo"},
"path": "archives/test/app",
"type": "folder",
"$or": [
{
"$and": [
{
"name": {"$nmatch" : "*build*"} //change value using sed
}
]
}
]
}
}
}
]
}
尝试了以下命令但没有用
sed -i -e '/name:/{s/\($nmatch\).*/: "'"build1.1"'" /}'
您的文档格式是json,所以您应该使用jq进行编辑:
jq '.files[0].aql."items.find"."$or"[0]."$and"[0].name."$nmatch"="build1.1"' spec
使用 sed,您无法可靠地访问正确的名称节点。您的代码不起作用,因为您没有在搜索模式中包含 name
周围的引号。如果您有 build 的唯一标识符,则可以使用 sed。示例:
sed -i 's/BUILD_NUMBER/build1.1/g' spec
一种更“间接”的方法是简单地用 $nmatch
:
设置所有内容
jq '(.. | select(has("$nmatch"))? ) = "build1.1"' input.json
如何使用 sed 更改 .spec 文件中的值?想要将构建的 $nmatch
值更改为其他值,例如 "build1.1"
.
{
"files": [
{
"aql": {
"items.find": {
"repo": {"$eq":"app-java-repo"},
"path": "archives/test/app",
"type": "folder",
"$or": [
{
"$and": [
{
"name": {"$nmatch" : "*build*"} //change value using sed
}
]
}
]
}
}
}
]
}
尝试了以下命令但没有用
sed -i -e '/name:/{s/\($nmatch\).*/: "'"build1.1"'" /}'
您的文档格式是json,所以您应该使用jq进行编辑:
jq '.files[0].aql."items.find"."$or"[0]."$and"[0].name."$nmatch"="build1.1"' spec
使用 sed,您无法可靠地访问正确的名称节点。您的代码不起作用,因为您没有在搜索模式中包含 name
周围的引号。如果您有 build 的唯一标识符,则可以使用 sed。示例:
sed -i 's/BUILD_NUMBER/build1.1/g' spec
一种更“间接”的方法是简单地用 $nmatch
:
jq '(.. | select(has("$nmatch"))? ) = "build1.1"' input.json