如何用JQ删除Vivaldi书签JSON中值为data:image开头的Thumbnail字段?
Vivaldi浏览器书签base64缩略图清理jq命令修改方案
原有命令问题
原过滤逻辑会删除所有键为Thumbnail的条目,会误删使用chrome://协议存储的自定义缩略图,不符合仅清理base64编码内嵌缩略图的需求。
修改后可用命令
jq 'walk(if type == "object" then with_entries(select(.key != "Thumbnail" or (.value | startswith("data:image") | not))) else . end)' Bookmarks > Bookmarks_clean
逻辑说明
- 遍历JSON结构的所有对象节点
- 保留所有非
Thumbnail的键值对 - 针对
Thumbnail键:仅当值不是以data:image开头时才保留,自动过滤掉base64编码的内嵌缩略图,自定义的本地缩略图不受影响
注意事项
- 操作前务必备份原Bookmarks文件,避免数据丢失
- 修改书签文件前需要完全退出Vivaldi浏览器,否则修改会被浏览器缓存覆盖
- 如果需要匹配任意位置包含
data:image的Thumbnail值,可将命令中的startswith("data:image")替换为test("data:image")
内容的提问来源于stack exchange,提问作者Stian Lund
相关产品推荐
相关产品推荐

