条件grep从Json文件



我有一个Json和grep查询:-

[
{
"name":"Jon",
"id":123
},
{
"name":"Ray",
"id":1234
},
{
"name":"Abraham",
"id":12345
}
]

如何从这个json中提取名称,其中id匹配说1234,可以是随机的,使用grep或sed?

我建议使用jq,但如果你想使用grep尝试

grep -B1 'id.*1234'  < input_file   |  grep name 

from man page

-B num, --before-context=num
Print num lines of leading context before each match.  See also the -A and -C options.

请建议使用jq命令

我冒昧地答应你的要求。

jq -r '.[]|select(.id==1234).name' file
  • .[]-迭代数组元素
  • select(.id==1234)- filter element with desired id
  • .name-提取物名称
  • 选项-r会使名称不加引号。

相关内容

  • 没有找到相关文章

最新更新