前几天接到任务,需要完善一段shell写的测试脚本,其中的问题最后归结成这样一个问题,已知如下json格式的字符串
{
"up": true,
"pending": false,
"available": true,
"autostart": true,
"dynamic": false,
"uptime": 5217,
"ipv4-address": [
{
"address": "192.168.59.150",
"mask": 24
}
],
"ipv6-address": [
],
"ipv6-prefix": [
],
"ipv6-prefix-assignment": [
],
"route": [
]
}
进一步搜索,用bing的国际版终于找到相关页面,见https://github.com/stedolan/jq/issues/38,也即这是jq的bug,同时也给出了可用的解决方案,也即:
cat data.json > jq -r '.["ipv4-address"][0].address'
解决Shell使用jq解析JSON的compile error问题

本文讲述了在Shell脚本中使用jq解析JSON时遇到的compile error问题,通过详细描述问题背景和解决方案,指导读者如何正确处理此类问题。解决方案是利用jq的特定语法避免bug,从而成功获取json字符串中特定字段的值。
886

被折叠的 条评论
为什么被折叠?



