我想匹配 json 檔案中的特定值并在同一個 json 檔案中附加一個后綴。
這是我的 json 檔案
{
"apiVersion": "argoproj.io/v1alpha1",
"kind": "Workflow",
"metadata": {
"generateName": "kns-vm-"
},
"spec": {
"templates": [{
"inputs": {
"parameters": [{
"name": "un",
"value": "org"
}]
},
"dag": {
"tasks": [{
"name": "create-ns",
"templateRef": {
"name": "wft-kn"
},
"arguments": {
"parameters": [{
"name": "un",
"value": "{{inputs.parameters.un}}"
}]
}
},
{
"name": "create-sm",
"templateRef": {
"name": "wft-sn"
},
"arguments": {
"parameters": [{
"name": "un",
"value": "{{inputs.parameters.un}}"
}]
}
}
]
}
}]
}
}
在這個我想找到價值并wft-sn附加一個后綴-test
所以更新的 json 檔案應該是這樣的
{
"apiVersion": "argoproj.io/v1alpha1",
"kind": "Workflow",
"metadata": {
"generateName": "kns-vm-"
},
"spec": {
"templates": [{
"inputs": {
"parameters": [{
"name": "un",
"value": "org"
}]
},
"dag": {
"tasks": [{
"name": "create-ns",
"templateRef": {
"name": "wft-kn"
},
"arguments": {
"parameters": [{
"name": "un",
"value": "{{inputs.parameters.un}}"
}]
}
},
{
"name": "create-sm",
"templateRef": {
"name": "wft-sn-test"
},
"arguments": {
"parameters": [{
"name": "un",
"value": "{{inputs.parameters.un}}"
}]
}
}
]
}
}]
}
}
我正在使用如下jq命令,但它不起作用
jq '. | select(.spec.templates[].dag.tasks[].templateRef.name == "wft-sn").name |= . "-test"' demo.json
我在這里犯了什么錯誤?我們怎么能做到這一點?
uj5u.com熱心網友回復:
select如果條件評估為 ,則再現其輸入true。因此,僅將其應用于您要測驗的部分。此外,將整體背景關系保留在括號中以將其保留在頂層以供輸出:
jq '(.spec.templates[].dag.tasks[].templateRef.name | select(. == "wft-sn")) = "-test"'
{
"apiVersion": "argoproj.io/v1alpha1",
"kind": "Workflow",
"metadata": {
"generateName": "kns-vm-"
},
"spec": {
"templates": [
{
"inputs": {
"parameters": [
{
"name": "un",
"value": "org"
}
]
},
"dag": {
"tasks": [
{
"name": "create-ns",
"templateRef": {
"name": "wft-kn"
},
"arguments": {
"parameters": [
{
"name": "un",
"value": "{{inputs.parameters.un}}"
}
]
}
},
{
"name": "create-sm",
"templateRef": {
"name": "wft-sn-test"
},
"arguments": {
"parameters": [
{
"name": "un",
"value": "{{inputs.parameters.un}}"
}
]
}
}
]
}
}
]
}
}
我還洗掉了不必要的. |并簡化|= . 為 =.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/473088.html
