按带有 bash 通配符的数字排序
Order by numbers with bash wildcards
我有一个目录包含
frame0.png
frame1.png
frame2.png
...
frame20.png
我想使用通配符,以便 ls -l 显示按编号排序的文件。我试过了
ls -l frame?.png frame??.png
因为我认为它会首先搜索只有一个数字的项目,对它们进行排序,然后对两个数字执行相同的操作但是,输出是
frame0.png
frame10.png
frame11.png
...
frame1.png
frame20.png
frame2.png
...
frame9.png
我怎样才能避免 bash 那样命令他们?
如果您有 gnu 实用程序,则使用 -v
选项进行自然排序:
ls -lv frame*.png
如果你没有 gnu ls
那么试试这个 find + sort
:
find . -maxdepth 1 -name 'frame*.png' | sort -V
我有一个目录包含
frame0.png frame1.png frame2.png ... frame20.png
我想使用通配符,以便 ls -l 显示按编号排序的文件。我试过了
ls -l frame?.png frame??.png
因为我认为它会首先搜索只有一个数字的项目,对它们进行排序,然后对两个数字执行相同的操作但是,输出是
frame0.png frame10.png frame11.png ... frame1.png frame20.png frame2.png ... frame9.png
我怎样才能避免 bash 那样命令他们?
如果您有 gnu 实用程序,则使用 -v
选项进行自然排序:
ls -lv frame*.png
如果你没有 gnu ls
那么试试这个 find + sort
:
find . -maxdepth 1 -name 'frame*.png' | sort -V