我在Linux机器上使用了一个非常大的JSON文件,当我jq这个文件时,我得到了一个如下格式的输出,这是完美的:
{“ID:“12345“姓名:“joe“地址:“第一大街123号“电子邮件:“joe@example.com
我的目标是能够对特定字段执行grep,但返回所有相关字段,因此,如果对“123 firststreet”执行grep,我还将获得与这组数据在一起的ID、姓名和电子邮件。
到目前为止,我已经到了这里:
jq .我的文件. json| grep“第一大街123号”
有谁能帮我把这个查询弄对吗?我想继续使用这个JSON格式,继续使用Linux。
jq .我的文件. json| grep“第一大街123号”
2条答案
按热度按时间s71maibg1#
您可以使用
grep
的--raw-output
选项来打印包含搜索字符串的整行。这将允许您查看包含值为“123 first street”的“Address”字段的整个JSON对象。或者,您可以使用
grep
的--color=never
选项来抑制颜色输出,这可以使输出更易于阅读。如果您想从JSON对象中提取包含值为“123 first street”的“Address”字段的特定字段,您可以使用
jq
来过滤输出。例如,以下命令将提取“ID”、“Name”和“Email”字段:这将输出一个包含所选字段的JSON对象,如下所示:
您还可以使用
jq
提取特定字段并将输出格式化为字符串。例如,以下命令将提取“ID”、“Name”和“Email”字段并将其格式化为包含逗号分隔列表的字符串:这将输出如下字符串:
fhity93d2#
这应该返回所有带有“field”的JSON对象。