如何自动比较和合并大量文本文件?

如何自动比较和合并大量文本文件?

由于 Dropbox 和 Simplenote 同步出现一系列技术问题,我的主要写作文件夹(其中包含大部分 Markdown 格式的文本文件)都乱了套。

我有大约 500 个唯一文件,但现在每个文件都有多个版本。对于任何给定文件,目录包含以下内容:

textfile.txt
textfile.md
textfile.org
textfile.0001.txt
textfile.0002.txt

它们大多具有相同的内容 - 有些在开头包含额外的换行符,或者包含文件名的行。

不过,我并没有立即意识到发生了这种情况,而且我有多个版本,因此对于其中一些版本,我修改了其中一个版本,而没有修改其他版本。(好消息是,当我修改文件时,我不会编辑或删除,而只是添加新文本。)

我想协调我的文件夹,以便每个文件都有一个规范版本。

由于现在有数千个文件,并且每个文件都有两个以上的版本,因此我不想使用手动差异应用程序来协调它们。

有没有一种工具可以找到多个包含相同内容的文本文件并自动合并它们?同样,这些文件包含重复的内容,还有一些新内容,因此只需合并重复的内容,然后在文件末尾添加新内容即可。

(我使用的是 OSX 10.8.2,主要用 Aquamacs Emacs 写作。哦,我将停止使用 Simplenote。)

答案1

由于 Mac 是基于 Unix 的,我猜它支持终端上的sdiff命令cat。我只是想在这里发表评论,但由于我没有足够的声誉,所以我回复了答案。所以我想我们应该尝试做类似的事情:

Pseudocode:
 loop a
     loop b
     if (sdiff fileA FileB*)==0 then cat fileA fileB*
     end loop b
 end loop a

我们只是循环遍历目录中存在的每个可能的文件。我想其他用户可以告诉我们这是否可行!

相关内容