如何按正确的数字顺序对文件名进行排序

noo*_*iot 1 files

如何解决文件名顺序问题?

例如,

ls
Run Code Online (Sandbox Code Playgroud)

生成文件如下:

basename1
basename11
basename12
basename13
[omitted]
basename2
basename20
basename21
....
basename3
Run Code Online (Sandbox Code Playgroud)

问题

11-19 在 2 和 3 之前解析。

小智 5

您可以使用排序

ls basename* | sort -V
Run Code Online (Sandbox Code Playgroud)

sort 的 -V 选项是“版本”的缩写,但它实际上按“名称和编号”排序,这正是您似乎正在寻找的。请参阅排序手册页:

-V --版本排序

 Sort by version name and number.  It behaves like a standard sort,
 except that each sequence of decimal digits is treated numerically
 as an index/version number
Run Code Online (Sandbox Code Playgroud)

GNU ls

ls -v可以对列表进行版本排序。