【发布时间】:2016-10-10 01:29:39
【问题描述】:
在 OSX 终端中,我们如何按字母数字顺序遍历以数字开头的文件?
到目前为止,我有这个 bash 脚本,它以不明显的顺序循环文件:
FILES=/Users/somefolder/*.txt
for f in $FILES
do
echo $f
done
另外,我的文件以数字开头,例如,当我在ls 中使用-v 开关时,它们被列为:
10_file.txt
11_file.txt
21_file.txt
2_file.txt
但是,我希望顺序为:2_file.txt、10_file.txt、11_file.txt 和 21_file.txt
【问题讨论】:
-
另一个应按字母顺序排列:Does bash's * match files in alphanumeric order?。至少在 GNU Bash 中
-
我的文件以数字
10_file.txt开头出现在2_file.txt之前,显然是按文件名中的字符排序的。我现在将调整我的问题。 -
嗯,这意味着它是按字母顺序排序的。
-
那么字母排序不是我想要的。是字母数字排序吗?这个有名字吗?
-
是的。在我发布的链接中,Bash 会扫描每个单词中的字符“*”、“?”和“[”。如果出现这些字符之一,则该单词被视为一个模式,并替换为按字母顺序排列的与该模式匹配的文件名列表