Curl JSON只输出一个对象
我想从json文件的输出中提取一个值Curl JSON只输出一个对象,json,bash,jq,Json,Bash,Jq,我想从json文件的输出中提取一个值 curl cli.fyi/8.8.8.8 输出 { "type": "IP Address", "data": { "organisation": "Google LLC", "country": "United States", "countryCode": "US", "continent": "North America", "latitude": "37.751", "longitude": "-97
curl cli.fyi/8.8.8.8
输出
{
"type": "IP Address",
"data": {
"organisation": "Google LLC",
"country": "United States",
"countryCode": "US",
"continent": "North America",
"latitude": "37.751",
"longitude": "-97.822"
}
}
我可以运行以下命令:
curl cli.fyi/8.8.8.8 2>/dev/null | awk -F'"' '$2=="organisation"'
它将输出:
"organisation": "Google LLC",
如何仅获取
Google LLC
?如果需要解析JSON,最好使用实际的JSON解析器,而不是尝试使用awk
或类似工具。该工具非常适用于此:
curl cli.fyi/8.8.8.8 | jq -r .data.organization
这将为您提供最简单的字符串:
Google LLC
如果需要解析JSON,最好使用实际的JSON解析器,而不是尝试使用
awk
或类似工具。该工具非常适用于此:
curl cli.fyi/8.8.8.8 | jq -r .data.organization
这将为您提供最简单的字符串:
Google LLC
太好了,行得通。只需要安装jq。二手自制:brew安装jqGreat,很好用。只需要安装jq。使用自制:brew安装jqi如果您没有安装解析器,也不想安装解析器,我建议您使用grep和用perl语法编写的惰性正则表达式。这类似于:
command | grep-P regexp
。如果您没有安装解析器,也不想安装解析器,我建议您使用grep和基于perl语法编写的惰性正则表达式。这类似于:命令| grep-P regexp
。