首页 > 如何从一堆文件里列出互不重复的文件

如何从一堆文件里列出互不重复的文件

一个设计师给了我很多很多SVG文件,一个SVG文件一帧,文件名格式是帧编号.svg,用于创建逐帧动画。
由于是SVG逐帧动画(一个小人嘴巴动啊动眼睛眨巴眨巴的),有很多重复帧,但前后两帧肯定不一样。

不可通过沟通的方式知道哪些帧是重复的;人工辨别两个文件是否一样的工作量非常大。

为了压缩图片数,如何快速列出互不重复的SVG文件列表,同时构建帧编号-互不重复的SVG文件的关系?


mac的话可以用Gemini


试试fdup, https://github.com/rck/fdup


我用Python:

用一个dict,key为SHA256签名,value为一个list,保存有对应的文件路径(可能有多个文件)。

然后,打印出来value的长度大于一的值就好(也可以直接删除一个)。


一个思路是:

  1. 遍历原目录下的文件,移动到另外一个目录A/下并重命名(mv命令),规则是帧数-md5(文件内容).扩展名(md5sum命令)
  2. 再次遍历原目录下的文件,移动到目录B/下并重命名,规则是md5(文件内容).扩展名

A/的文件名列表是帧数-文件关系,B/下面的文件是提供给用户的互不重复的文件。

由于设计师及时出现,沟通过后问题不需要通过shell代码就解决了=w=
希望大家不局限于这个方案,好想知道大家是怎么解决这类问题的=w=

【热门文章】
【热门文章】