我在我的程序中生成了一系列png图像,我计划得到的文件通过一些工具传递给视频文件。我按照我想要的正确顺序逐个生成文件。我想以这样一种方式命名它们,即随后的视频转换工具将按照shell使用的文件名globbing以正确的顺序进行命名(我正在使用Linux的bash。)。我尝试添加像' scene1.png,scene10.png,scene12.png这样的数字序列,但是shell并没有用数字排序整数。我可以通过这样的排序列表:
convert -antialias -delay 1x10 $(ls povs/*.png | sort -V) mymovie.mp4
但是有些程序会使用自己的globbing并且不使用shell(如FFmpeg),因此这种方法并不总是有效。所以我正在寻找一种命名文件的方案,这些文件按照shell globbing规则保证按顺序排列。
答案 0 :(得分:1)
您可以在文件前加零填充整数。
此脚本模拟重命名后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_file11