在for循环中对目录中的子目录进行排序
Sort subdirectories in a directory in a for loop
假设你有
for subdir in *
并且您希望父目录中的子目录(名为 1、2、...、10、11...)以人类数字顺序读取,即 1、2、3 等,而不是在机器中一个,即 1、10 等。您是如何执行的?
您可以使用 -n
(--numeric-sort
) 选项 sort
按数字顺序排序:
~/tmp for f in $(ls | sort -n); do echo $f; done
1
2
3
4
5
6
7
8
9
10
~/tmp for f in $(ls); do echo $f; done
1
10
2
3
4
5
6
7
8
9
如果不需要做任何操作,只需要按顺序列出目录即可:
ls | sort -n
假设你有
for subdir in *
并且您希望父目录中的子目录(名为 1、2、...、10、11...)以人类数字顺序读取,即 1、2、3 等,而不是在机器中一个,即 1、10 等。您是如何执行的?
您可以使用 -n
(--numeric-sort
) 选项 sort
按数字顺序排序:
~/tmp for f in $(ls | sort -n); do echo $f; done
1
2
3
4
5
6
7
8
9
10
~/tmp for f in $(ls); do echo $f; done
1
10
2
3
4
5
6
7
8
9
如果不需要做任何操作,只需要按顺序列出目录即可:
ls | sort -n