我通常使用 WinMerge 查看文件之间的差异,但在这种情况下它没有帮助。我比较的文件已知有不同的文件名,当两个包含相同文档的文件有不同的文件名时,就会产生误报。
我有一个文件夹,里面有很多目录,代表我公司与之有业务往来的所有供应商,其中包括许多收据和发票的 .pdf 文件。这是主供应商列表。发票和收据的命名方式使得如果没有周围的目录结构提供上下文,这些名称就没有意义。例如,这里有“Vendors/Company Foo/Product Bar/Invoice#3.pdf”
然后我有另一个文件夹,里面有很多收据和发票,以前与主供应商列表分开维护,应该包括手动创建的每张收据和发票的副本,这些收据和发票已输入到主供应商目录结构中的相应条目中。这些收据和发票应该被重命名,以便会计人员更容易阅读和了解它们指的是什么。例如,这里有“Taxes/CompanyFoo ProductBar.pdf”。
我在主供应商列表的顶层文件夹中搜索了 .pdf 类型的文件,以便我的搜索结果包括目录结构中所有供应商的收据和发票。然后我将这些 .pdf 文件复制到桌面上的另一个文件夹中,以便可以比较它们。我使用 WinMerge 将这些文件与“taxes”文件夹中的文件进行比较,以查看“taxes”文件夹中是否有任何文件不存在于“主供应商”目录中,反之亦然。
但是 WinMerge 会因为文件名不匹配而将文件视为不同。我需要知道文件内容是否不同,无论文件名是什么。
有数百个这样的文件,如果其中任何一个文件位于“税务”文件夹中但不在其对应的“主供应商”目录中,我就需要纠正这个问题并正确地归档它们。
有人可以推荐一个可以做到这一点的工具吗?
答案1
如果你有某种可用的 unix 环境(如果你在 Windows 上,我建议赛格威)你可以很容易地找到当前目录下的重复文件,如下所示:
find . -type f -exec md5sum '{}' '+' | sort | uniq -D -w 32
输出将是 md5sum 和每个至少有一个重复项(相同的 md5sum)的文件的名称。重复项按字母顺序依次显示。如果不是当前目录,请将.
后面的内容替换为您要查找的路径。find
编辑:
相反,要获取没有重复的文件,您可以使用
find . -type f -exec md5sum '{}' '+' | sort | uniq -u -w 32
这将仅打印当前目录下没有任何重复的文件。
答案2
我觉得i-net PDF内容比较器将会很有帮助。
现为 2.0 版,提供 GUI 和灵活的定价选项。仍有 30 天免费试用版,您可以借此检查软件的各个方面。
答案3
答案4
尝试使用“PDF Compare”应用程序,它可以在像素级别比较 pdf 文档元数据和页面图像:
https://www.microsoft.com/en-us/store/p/pdfcompare/9n9dmzjbz2nl#