类似于Grep的工具,用于在JSON文件中查找匹配项并返回匹配的上下文

时间:2018-10-17 17:59:38

标签: json grep

我正在寻找一种类似于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"
                        }
                    }
                }
            }
        }
    }
}

0 个答案:

没有答案