我对 Windows 排序顺序有点根深蒂固。不幸的是,Windows 并没有真正允许一种简单的方法来改变它。
有没有办法使用 unix 工具模拟这种排序顺序?
如果每个都是文件名的示例
{"Ie4 01", "Ie4!01", "Ie4_01", "Ie4_128", "Ie5", "Ie6", "Ie401sp2","Ie501sp2"}
正确的排序顺序
Ie4 01
Ie4!01
Ie4_01
Ie4_128
Ie5
Ie6
Ie401sp2
Ie501sp2
我对 Windows 排序顺序有点根深蒂固。不幸的是,Windows 并没有真正允许一种简单的方法来改变它。
有没有办法使用 unix 工具模拟这种排序顺序?
如果每个都是文件名的示例
{"Ie4 01", "Ie4!01", "Ie4_01", "Ie4_128", "Ie5", "Ie6", "Ie401sp2","Ie501sp2"}
正确的排序顺序
Ie4 01
Ie4!01
Ie4_01
Ie4_128
Ie5
Ie6
Ie401sp2
Ie501sp2
GNU sort 的版本 sort (
-V
) 似乎提供了该输出:如果有人想像 Windows 那样分离文件夹和文件,您可以这样做:
如果您不特别关注特殊字符的顺序,那么
zsh
's 数字排序 glob 限定符会很接近:设置
仅限 zsh
用 ls
要的标志
ls
是:-1
) -- 只是为了便于查看-d
)-f
或-U
)zsh glob 限定符说:
*(n/)
- 展开目录列表/
,按数字排序*(n^/)
- 展开到不是^
目录的项目列表,按数字排序我提到 zsh 解决方案只是因为您可以更轻松地操作结果,而不必担心引用文件名或用空值分隔它们。例如: