用shell中用jq解析json遇到compile error
2017-12-05 23:18
621 查看
前几天接到任务,需要完善一段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": [
]
}
目标是需要解析获得ipv4-address.address的值,网上搜了下,一般shell命令行里推荐使用jq,试用后发现一个有意思的问题,仿佛jq不太喜欢field name中间有dash,也就是那一小段横线,执行 cat data.json > jq -r '.ipv4-address.address' 就会报compile error。
进一步搜索,用bing的国际版终于找到相关页面,见https://github.com/stedolan/jq/issues/38,也即这是jq的bug,同时也给出了可用的解决方案,也即:
cat data.json > jq -r '.["ipv4-address"][0].address'
{
"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": [
]
}
目标是需要解析获得ipv4-address.address的值,网上搜了下,一般shell命令行里推荐使用jq,试用后发现一个有意思的问题,仿佛jq不太喜欢field name中间有dash,也就是那一小段横线,执行 cat data.json > jq -r '.ipv4-address.address' 就会报compile error。
进一步搜索,用bing的国际版终于找到相关页面,见https://github.com/stedolan/jq/issues/38,也即这是jq的bug,同时也给出了可用的解决方案,也即:
cat data.json > jq -r '.["ipv4-address"][0].address'
相关文章推荐
- Linux 命令详解(十一)Shell 解析 json命令jq详解
- PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题
- 遇到bug json解析问题
- jq --- shell命令模式下JSON格式化利器
- shell脚本解析json文件
- 解析json数据(经常遇到)
- 将字符串解析成json字符串时,遇到的错误
- jq-Linux命令行下解析json的命令
- iOS开发中解析JSON中的boolean类型的数据遇到的问题
- 使用jq命令在终端对json文件进行解析
- vs2009调试遇到问题/json解析错误/eclipse项目转myeclipse项目
- shell 解析 json
- Windows Phone 7开发遇到的事:解析JSON
- shell jsonj解析
- Linux下如何使用jq解析json数据
- 解析JSon时遇到转义字符记得想到stripslashes
- shell脚本处理JSON数据工具jq
- jq解析json文件
- Linux中解析json---jq
- 用AFNetworking 做JSON数据解析遇到 3840 错误