【发布时间】:2019-06-12 18:21:24
【问题描述】:
我有一个 json 内容 (output.json)
{"project": {"id": "A", "content": [{"name": "XYZ", "location": "Berlin", "comments":""}, {"name": "ABC", "location": "NewYork", "comments": "Hwllo"}, {"name": "DEF", "location": "Paris", "comments": "Success"}]}}
当name 匹配ABC 时,我想使用 bash 或 shell 命令从上述 json 中提取带有值的 location 键
我尝试了类似下面的方法,它在花括号内给出了内容。但不确定是否搜索特定键。
cat output.json | grep -o -e "{.*}"
输出预期:
如果name 匹配ABC,则输出为"location":"NewYork"
对进一步处理有什么建议吗?
【问题讨论】:
-
如果可以的话,你应该使用 jq 从 json 中提取。根据作者的说法,“jq 就像 sed 用于 JSON 数据”。
标签: json regex linux bash shell