转换命令不尊重顺序

转换命令不尊重顺序

我有一定数量的 png 文件,分别名为1.png2.png等,需要用它们制作动画。我使用的是convert -delay 20 *.png animation.gif

我第一次使用它时,动画从 10 开始,然后从 11 开始,然后从 12 开始,一直到 19,然后到 2!这很合逻辑,但我不希望这样。所以我所做的就是将名称修改为01.png, 02.png

一开始还好。现在,我想制作一个包含更多图像(数千张)的 gif,问题是,当图像数量达到 10 张时,它就会变成 100 张!我无法手动修改名称,因为所有这些都是脚本的一部分,用户可以选择他想要多少张 png。那么,如何解决呢?

答案1

这与命令无关convert- 您的 shell 在将 glob 模式*.png传递给命令之前会对其进行扩展,并且会LC_COLLATE按照系统当前定义的词汇排序顺序进行扩展locale

不幸的是,在 bash shell 中很难获得数字排序(我假设你正在使用):如果你不介意切换到,zsh可以使用数字glob 限定符IE

convert -delay 20 *.png(n) animation.gif

如需进一步讨论,请参阅相关问答按数字顺序排列

相关内容