json - 如何使用jq提取数据
问题描述
我正在尝试使用 jq 从包含特定值的 JSON 字段中提取数据。
这是我正在使用的 JSON:
"results": [
{
"input": {
"FUZZ": "actuator",
"HOST": "https://zzlckzc4kz-3.algolia.net"
},
"position": 13,
"status": 301,
"length": 162,
"words": 5,
"lines": 8,
"redirectlocation": "https://algolia.net/1/404",
"resultfile": "",
"url": "https://zzlckzc4kz-3.algolia.net/actuator"
},
{
"input": {
"FUZZ": "actuator/heapdump",
"HOST": "https://zzlckzc4kz-3.algolia.net"
},
"position": 24,
"status": 301,
"length": 162,
"words": 5,
"lines": 8,
"redirectlocation": "https://algolia.net/1/404",
"resultfile": "",
"url": "https://zzlckzc4kz-3.algolia.net/actuator/heapdump"
},
]
我希望输出是“状态”:301,然后显示“url:”
解决方案
尝试以下操作,假设包含该 json 文档的文件位于/tmp/json
:
jq '.results[] | select(.status==301) | .url' /tmp/json
另外,我注意到您在问题中提供的文档实际上不是有效的 JSON 文档。我假设您的意思如下:
{
"results": [
{
"input": {
"FUZZ": "actuator",
"HOST": "https://zzlckzc4kz-3.algolia.net"
},
"position": 13,
"status": 301,
"length": 162,
"words": 5,
"lines": 8,
"redirectlocation": "https://algolia.net/1/404",
"resultfile": "",
"url": "https://zzlckzc4kz-3.algolia.net/actuator"
},
{
"input": {
"FUZZ": "actuator/heapdump",
"HOST": "https://zzlckzc4kz-3.algolia.net"
},
"position": 24,
"status": 301,
"length": 162,
"words": 5,
"lines": 8,
"redirectlocation": "https://algolia.net/1/404",
"resultfile": "",
"url": "https://zzlckzc4kz-3.algolia.net/actuator/heapdump"
}
]
}
推荐阅读
- c - 如何轻松地将数组从 INI 文件解析为 C 中的数组?
- python - 在 python 中使用 re.sub() 如何替换某些短语,但前提是它前面有多个字母
- python - 错误强制不将不需要的字符串更改为熊猫中的 NaN
- vue.js - 如何使用状态管理从购物篮中删除项目?
- docker - 部署解析服务器时 docker-compose up 命令抛出错误
- python - 无法将 aws 胶水动态帧转换为火花数据帧
- facebook-graph-api - 导出 facebook-graph-api 中所有帖子的所有评论
- amazon-web-services - RClone:将 AWS S3 访问密钥和秘密密钥存储在我的服务器而不是用户计算机/桌面应用程序中
- java - 我如何在android中制作发光按钮
- javascript - TypeError:无法在“URL”上执行“createObjectURL”:找不到与提供的签名匹配的函数