如何解决bash - jq 用键和值中的空格迭代 json
尝试从具有以下结构的文件中迭代顶级键和相应的 json 对象值。
{
"parkey1":{
"parkey1subkey1":"sub val1","parkey1subkey2":"sub val2"
},"parkey2":{
"parkey2subkey1":{
"subsubkey1":"val with space","subsubkey2":{
"subsubval3":"val space"
}
}
}
}
以上结构只是一个示例。键和值可以是任何东西。预期的输出是获取键和相应的 json 对象值。使用 to_entries 字符串值之间的空格打破了逻辑。
所需的输出:
key: "parkey1"
value: {
"parkey1subkey1":"sub val1","parkey1subkey2":"sub val2"
}
key: parkey2
value: {
"parkey2subkey1":{
"subsubkey1":"val with space","subsubkey2":{
"subsubval3":"val space"
}
}
}
解决方法
jq 'to_entries[]' | sed -e 's/^[{}]//' -e 's/^ //'
如果顶级 key
和 value
标记周围的引号有问题,您可以根据统一缩进轻松扩展 sed 指令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。