我在我的程序中生成了一系列的png图像,我计划得到的文件是通过某个工具传递的,该工具将它们转换成一个视频文件。我一个接一个地生成文件,按照我想要的顺序。我希望将它们命名为这样一种方式,即随后的视频转换工具将在shell使用的文件名globbing (我在Linux中使用bash )下对它们进行适当的排序。我尝试添加一个数字序列,如'scene1.png,scene10.png,scene12.png,但是shell不对全局进行数字排序。我可以传递一个排序列表,如下所示:
convert -antialias -delay 1x10 $(ls povs/*.png | sort -V) mymovie.mp4但是,有些程序会进行自己的全球化,而不使用shell全球化(如FFmpeg),因此这种方法并不总是有效的。因此,我正在寻找一种命名方案的文件是保证按顺序按照shell全球化规则。
发布于 2016-03-27 10:32:33
您可以在文件的前缀加上零填充整数。
此脚本模拟重命名后ls *应该输出的内容:
$ for i in {1..12};do
$ printf '%05d_%s\n' ${i} file${i}
$ done;
00000_file0
00001_file1
00002_file2
00003_file3
00004_file4
00005_file5
00006_file6
00007_file7
00008_file8
00009_file9
00010_file10
00011_file11https://stackoverflow.com/questions/36246151
复制相似问题