【发布时间】:2021-01-29 20:41:52
【问题描述】:
我是jq的新手,我想转换以下数据:
{
"host1": "10.1.2.3" ,
"host2": "10.1.2.2" ,
"host3": "10.1.18.1"
}
转成以下格式:
host1 : 10.1.2.3
host2 : 10.1.2.2
host3 : 10.1.18.1
【问题讨论】:
标签: jq
我是jq的新手,我想转换以下数据:
{
"host1": "10.1.2.3" ,
"host2": "10.1.2.2" ,
"host3": "10.1.18.1"
}
转成以下格式:
host1 : 10.1.2.3
host2 : 10.1.2.2
host3 : 10.1.18.1
【问题讨论】:
标签: jq
替代版本,不存在于 cmets 中链接的可能重复问题中。
jq -r 'keys_unsorted[] as $k | [ $k, .[$k] ] | join(" : ")'
将键存储在$k中并获取与之关联的值,并将结果放入数组[..]并通过:连接数组元素
【讨论】:
将对象转换为带有to_entries 的关联列表,然后使用插值构造所需的字符串。 -r 选项生成原始文本,而不是 JSON 编码的字符串。
$ jq -r 'to_entries[] | "\(.key) : \(.value)"' tmp.json
host1 : 10.1.2.3
host2 : 10.1.2.2
host3 : 10.1.18.1
【讨论】: