如何更改bash列出文件的顺序

如何更改bash列出文件的顺序,bash,filenames,Bash,Filenames,我有一些档案。当我列出它们时,我得到了顺序: frame0001i0002.png frame0001.png frame0002i0003.png frame0002.png frame0003i0004.png frame0003.png frame0004.png frame0005.png frame0006.png frame0001.png frame0001i0002.png frame0002.png frame0002i0003.png frame0003.png frame

我有一些档案。当我列出它们时,我得到了顺序:

frame0001i0002.png
frame0001.png
frame0002i0003.png
frame0002.png
frame0003i0004.png
frame0003.png
frame0004.png
frame0005.png
frame0006.png
frame0001.png
frame0001i0002.png
frame0002.png
frame0002i0003.png
frame0003.png
frame0003i0004.png
frame0004.png
frame0005.png
frame0006.png
我假设frame0001.png在frame0001i0002.png之前,因为我需要按以下顺序对它们进行操作:

frame0001i0002.png
frame0001.png
frame0002i0003.png
frame0002.png
frame0003i0004.png
frame0003.png
frame0004.png
frame0005.png
frame0006.png
frame0001.png
frame0001i0002.png
frame0002.png
frame0002i0003.png
frame0003.png
frame0003i0004.png
frame0004.png
frame0005.png
frame0006.png
我是否需要重命名它们以按我想要的顺序显示

最终,我想将他们的名字改为:

frame0001.png
frame0002.png
frame0003.png
frame0004.png
frame0005.png
frame0006.png
frame0007.png
frame0008.png
frame0009.png

按照上面单元格的顺序。

您遇到这个问题,因为我在前面。按照默认的排序顺序

使用以下方法可以获得预期的订单:

sort -t'.' -k 1,1

这就定义了。是一个字段分隔符,我们应该只考虑第一个字段,即在排序之前扩展的部分。我们现在比较frame0001和frame0001i0002,最短的将首先打印。

您遇到这个问题,因为我在前面。按照默认的排序顺序

使用以下方法可以获得预期的订单:

sort -t'.' -k 1,1
这就定义了。是一个字段分隔符,我们应该只考虑第一个字段,即在排序之前扩展的部分。我们现在比较frame0001和frame0001i0002,最短的将首先打印。

ls也可以使用-v选项执行此操作

来自ls的帮助

ls也可以使用-v选项来实现这一点

来自ls的帮助


你用什么来列出它们?如果我cd到父目录并运行*.png中的文件;执行echo${file*/};按所需顺序列出它们。同样,使用和while循环创建数组。例如,文件=;而read-rd;do files+=${REPLY};完成<您使用什么来列出它们?如果我cd到父目录并运行*.png中的文件;执行echo${file*/};按所需顺序列出它们。同样,使用和while循环创建数组。例如,文件=;而read-rd;do files+=${REPLY};完成<