我正在寻找一种类似于grep的工具,它不仅可以让我找到与json文件匹配的内容,而且还可以返回匹配内容。
我知道:
cat json_file | grep -C30 properties
我会在所有匹配项的“属性”中得到30条线,但我希望有一些东西可以在不同深度级别为匹配项提供周围的内容。
以下是数据示例。 它将位于名为 json_file
的文件中{
"dataitem-1":{
"aliases":{
"dataitem-morning":{
},
"dataitem-evening":{
}
},
"mappings":{
"dataitem-temp":{
"properties":{
"dataset":{
"index":"not_analyzed",
"type":"string"
},
"fields":{
"properties":{
"channel":{
"index":"not_analyzed",
"type":"string"
}
}
}
}
}
}
},
"dataitem-2":{
"aliases":{
"dataitem-morning":{
},
"dataitem-evening":{
}
},
"mappings":{
"dataitem-temp":{
"properties":{
"dataset":{
"index":"not_analyzed",
"type":"string"
},
"fields":{
"properties":{
"channel":{
"index":"not_analyzed",
"type":"string"
}
}
}
}
}
}
}
我希望该工具执行以下操作:
cat json_file | json_grep -depth=4 'fields'
它应该返回:
{
"dataitem-2":{
"aliases":{
"dataitem-morning":{
},
"dataitem-evening":{
}
},
"mappings":{
"dataitem-temp":{
"properties":{
"dataset":{
"index":"not_analyzed",
"type":"string"
},
"fields":{
"properties":{
"channel":{
"index":"not_analyzed",
"type":"string"
}
}
}
}
}
}
}