【发布时间】:2017-04-26 18:30:48
【问题描述】:
假设你有
for subdir in *
并且您希望以人类数字顺序读取父目录中的子目录(名为 1、2、...、10、11...),即 1、2、3 等,而不是在机器一中,即 1、10 等。你如何执行它?
【问题讨论】:
-
请参阅BashFAQ/003 了解执行此操作的可靠方法。
假设你有
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
【讨论】: