jq滤镜如何组合滤镜输出?以下jq不会生成带有相应输入arg值('jack')的output.json。
{
"key1": "",
"key2": ""
}
jq --arg input "$username" \
'if .key1 == "<value1>"
then . + {"key1" : ($input) }
else . end' input.json |
'if .key2 == "<value2>"
then . + {"key2" : ($input) }
else . end' > output.json
{
"key1": "jack",
"key2": "jack"
}
答案 0 :(得分:0)
您明显想要编写的过滤器是:
if .key1 == "" then . + {"key1" : $input } else . end
| if .key2 == "" then . + {"key2" : $input } else . end
这可以简化为:
if .key1 == "" then .key1 = $input else . end
| if .key2 == "" then .key2 = $input else . end
您可能还想考虑以下方法:
def update(f): f |= (if . == "" then $input else . end);
update(.key1) | update(.key2)