![将多个连续的 SQLite 数据库转储文件合并到 1 个公共数据库中?目的:搜索整个 Chrome 浏览历史记录](https://linux22.com/image/1302593/%E5%B0%86%E5%A4%9A%E4%B8%AA%E8%BF%9E%E7%BB%AD%E7%9A%84%20SQLite%20%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BD%AC%E5%82%A8%E6%96%87%E4%BB%B6%E5%90%88%E5%B9%B6%E5%88%B0%201%20%E4%B8%AA%E5%85%AC%E5%85%B1%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%EF%BC%9F%E7%9B%AE%E7%9A%84%EF%BC%9A%E6%90%9C%E7%B4%A2%E6%95%B4%E4%B8%AA%20Chrome%20%E6%B5%8F%E8%A7%88%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95.png)
谷歌浏览器的默认网页浏览历史搜索引擎只允许您访问最近 100 天的记录。然而,Chrome 会在您的应用程序数据中保留您的全部的浏览历史记录存储在SQLite数据库文件中,文件命名方案为“历史记录索引YYYY-MM”。
我正在寻找一种方法寻找…
- …通过我的整个浏览历史记录,
- …和复杂的过滤器(将搜索词限制在某些字段,例如 URL、域、标题、正文;通配符或正则表达式词、日期范围)。
… 在 …
- …要么一些现成的软件。
- 电子历史接近,因为它可以将术语限制到字段,但它缺少通配符/正则表达式,并且具有与默认搜索相同的有限时间范围。
- 除此之外,我找不到任何适合的 Chrome 扩展程序或独立(Mac)应用程序。
…或者命令行将多个 SQLite 数据库文件合并为一个数据库,然后我就可以查询该数据库(使用完整的语法功能)。本着以下伪代码的精神:
首选这种方式:
sqlite --targetDatabase ChromeHistoryAll --importFiles /path/to/ChromeAppData/History\ Index* --importOnlyYetUnknownFiles
或者,如果我想要的功能 --importOnlyYetUnknownFiles 不可行(该功能也可以称为“通过检查 UID 避免重复导入”),那么通过明确导入我所知道的文件,它们尚未导入到 ChromeHistoryAll 数据库中:
cd ChromeAppData; sqlite --databaseTarget ChromeHistoryAll --importFiles YetNotImported1 YetNotImported2 YetNotImported3
然后我将在数据库“ChromeHistoryAll”中执行所有查询
PS:大家感兴趣的附加问题:有没有办法在从多个文件动态创建的临时数据库中执行数据库查询?
喜欢:sqlite --query="SQL query" --targetDatabase DbAll --DBtemporaryInRAM --importFiles db1 db2 db3
这肯定不适用于我的 Chrome 问题,因为这些历史索引文件的总文件大小为 500MB,因此这样的查询性能很差。但它在其他情况下可能会派上用场。