jq - 根据以字符串开头或包含字符串的键选择属性

jq - 根据以字符串开头或包含字符串的键选择属性

输入.json

{
  "Stack": {
    "KeypairNameB651C0C1": "key-0123456abcdefg",
    "AsgNameA7D05B90": "my-asg-name"
  }
}

键名称可能会有所不同,但始终以设置的字符串开头

类似问题这里select(startswith("AsgName"))但想以某种方式获得基于a 的值钥匙

jq 可以实现吗?

答案1

您可以使用to_entries/with_entries访问密钥 ex。

$ jq '.Stack | with_entries(select(.key | startswith("AsgName")))' file.json 
{
  "AsgNameA7D05B90": "my-asg-name"
}

或者

$ jq '.Stack | to_entries[] | select(.key | startswith("AsgName")) | .value' input.json 
"my-asg-name"

相关内容