有没有办法控制运行时出现的排序, 因为我在*;做; echo $ i;完成; 在我的目录中。 它似乎总是使用ascii排序。无论如何做数字排序?
谢谢, 的Vivek
答案 0 :(得分:5)
如何制作文件名,以便它们自然地排序为数字,即用前导零填充。而不是1 .. 10 .. 100
,请使用001 ..010 .. 100
?
包含子目录:
for i in $( ls -d * | sort -n ); do echo $i; done;
排除子目录:
for i in $( ls | sort -n ); do echo $i; done;
我希望这会有所帮助。
答案 1 :(得分:4)
您始终可以使用sort(1)及其数字排序:
for i in $(ls -1 * | sort -n) ; do echo $i ; done
答案 2 :(得分:0)
您可以使用您为目录提供的ls [排序选项]的排序 即。
for i in `ls -X` ; do
echo $i
done
首先执行带有特定排序的ls命令,在示例中为扩展排序,然后用for循环给出列表
答案 3 :(得分:0)
for i in $(ls | sort -n) ; do echo $i ; done