如何将.ichat日志转换为文本文件?


22

如何将Messages创建的iChat成绩单文件转换为可以在不使用Messages应用程序的情况下打开的可读文本文件?

作为参考,这些是位于中的对话文件~/Library/Messages/Archive

只需在文本编辑器中打开.ichat文件,即可包含许多其他字符串和哈希。在“消息”中打开它们并将其复制粘贴到文本编辑器中是可行的,但我希望尽可能自动执行该过程。

Answers:


12

邮件保存的ichat文件具有文件扩展名。

但是,您可以从命令行检查它们,以查看它们实际上是二进制plist文件:

$ file transcript.ichat
transcript.ichat: Apple binary property list

事实证明,您可以轻松地将plist二进制文件转换为人类可读的XML文档

$ plutil -convert xml1 transcript.ichat

现在,当您file再次运行时,您可以看到它是一个XML文件:

$ file transcript.ichat
transcript.ichat: XML document text

继续-打开它,自己看看:

$ open transcript.ichat

8

如果您熟悉sqlite,则可以直接从Mountain Lion iMessage上的数据库中导出消息。

sqlite3 /Users/(username)/Library/Messages/chat.db

从数据库中,您可以发送sql命令以获取任何和所有您感兴趣的消息以及相关的字段。此外,您可以更改输出设置以直接写入文件。

此外,除了数据库外,所有照片都存储在“附件”文件夹中。


3
iChat成绩单(.ichat文件)不是SQLite数据库。
肖恩·莫布里2015年

7

签出我的项目,该项目将处理您所有的对话并将其转换为一个可读的文本文件。它不会只转换一个iMessage,而是会收集您的所有消息和附件,将它们备份,并以易于阅读的格式显示。

https://peterkaminski09.github.io/baskup


2
它可以与iChat日志文件一起使用吗?
nohillside

它使用在./Library/Messages/chat.db中找到的iChat日志文件转换为文本文件。
彼得·卡明斯基

这对我来说很好,谢谢!我注意到它可以跳过消息历史的最开始,但是如果您的对话时间很长(除非如果iMessage不能像我想的那样保留所有消息,除非它们永远消失了)。不过还是完成了工作!
比利·布莱斯

我认为我注意到的主要问题是,在手机上发送了许多邮件后打开Macbook时,Mac和手机上的iMessage之间存在延迟,这会导致邮件中断。
彼得·卡明斯基

这看起来非常有用,但是一旦导出/存档/任何内容,有没有办法删除较旧的消息?
Paul R

1

我创建了一个命令行工具,用于将这些ichat文件转换为以换行符分隔的JSON

该工具提取基本信息:消息,发件人,日期

您可以在https://github.com/kfatehi/ichat2json上查看源代码和/或下载二进制文件。


0

如果从文件菜单中选择打印,则当打印框在左下方打开时,是带有下拉菜单的pdf按钮。在这里,您可以另存为pdf,发布脚本,以pdf形式发送邮件或发送到iTunes。


-1

这不是一个完美的解决方案,但我注意到消息始终在Ä_和之间_$。您可以编写脚本来提取所有以这些字符开头和结尾的文本。(任何支持rexex的语言都可以)


-1

这似乎是Automator工作流程或AppleScript的理想应用程序,因为它们都可以执行“按屏幕上的按钮”样式行为。您可能会说“将文件作为输入”,并在“打印”或“消息”下使用某些内容,或者使用AppleScript告诉它打开文件并按文件并打印并另存为pdf,然后关闭文件。


您能否提供对答案的更好描述。这只是暗示性的,但没有为用户显示任何具体步骤的答案。
Danijel-James W
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.