识别(并删除)所有子目录中包含多个帧的所有.gif文件

时间:2016-10-05 17:19:43

标签: linux unix imagemagick animated-gif

我有以下linux命令来识别所有.gif文件并在活动目录中列出其框架:

identify -format '%n %i\n' -- *.gif

现在我想修改并扩展命令以完成以下操作: 1.识别超过1帧的.gif文件 2.也查看所有子目录(现在命令只是查看活动目录) 3.命令: a)列出已识别的文件 b)删除已识别的文件

我真的很感谢你们帮助实现这一目标......

提前多多谢谢!!

最佳, 弗洛里安

1 个答案:

答案 0 :(得分:1)

你走在正确的道路上。我建议利用findsortawk命令生成要删除的文件列表。

find /path/to/directory \
     -type f \
     -name "*.gif" \
     -exec identify -format '%n %i\n' {} \; \
     | sort -u \
     | awk '$1 > 1 {print $2}'

这是如何运作的

  • find将扫描所有子导演以*.gif结尾的文件,并将结果传递给ImageMagick。

  • identify将打印文件名+帧数(您已经在做的事情)

  • sort -u将删除重复的项目(uniq实用程序也可以使用。)
  • 如果第一列(帧数)大于1,则
  • awk应打印第二列(文件名)。

注意:这不会删除文件,而是提供可以检查的列表,并传递给rm命令