如何从Firefox导出的JSON书签中通过guid获取目标对象的完整路径
Firefox书签JSON指定guid对象定位方案
方案1:直接提取目标结果(无需提前获取路径)
直接使用jq递归查找匹配guid的对象,一步输出你需要的子节点标题:
jq '.. | objects | select(.guid=="_0no-4e9woLW") | .children[].title' 你的书签文件路径.json
命令说明:
..:jq递归下降运算符,遍历JSON所有层级节点objects:过滤非对象类型节点,避免属性匹配时报错select(.guid=="_0no-4e9woLW"):筛选出guid匹配的唯一对象.children[].title:直接提取该对象下所有子节点的标题
使用你的示例JSON执行该命令,输出结果如下:
css child override parent style css child parent inheritance
方案2:提前获取完整访问路径复用
如果需要单独提取访问路径后续多次使用,可执行以下命令输出路径数组:
jq -c 'path(.. | objects | select(.guid=="_0no-4e9woLW"))' 你的书签文件路径.json
示例输出为:
["foo","bar","zoo"]
拿到路径数组后,可通过getpath方法读取目标对象:
jq 'getpath(["foo","bar","zoo"]) | .children[].title' 你的书签文件路径.json
执行效果和方案1完全一致。
内容的提问来源于stack exchange,提问作者Wakan Tanka
相关产品推荐
相关产品推荐

