我使用的是 Ubuntu 22,我有一个很大的文件树,其中的名称很烦人,其中包含不同位置的数值。就像是:
./2
./2/9
./2/10
./2/8
./1
./1/2
./1/1
./1/11
./11
./11/page 6
./11/page 05
./11/page 4
我想根据数值对其进行排序,忽略诸如“页面”之类的任何内容,以便我得到:
./1/1
./1/2
./1/11
./2/8
./2/9
./2/10
./11/page 4
./11/page 05
./11/page 6
我已经尝试过sort -n
,但即使我只查看一级目录名称,它似乎也没有达到我的预期:
$ find . -mindepth 1 -type d | sort -n
./1
./11
./2
是否有一个方便的花花公子选项“按每个整数(而不是数字)排序”?
听起来这
sort -V
就是您想要的,至少考虑到您的示例的简单性:一个已知的警告:这不会“忽略”字符串中像“page”这样的文本,它只是将其包含在排序顺序中。如果您有其他带有“行”且编号相同的项目,则“行”条目将排在“页”条目之前。
但一般来说,如果这对您不起作用,请编辑您的帖子并更新您的示例以显示未正确解决的示例案例。
使用 zsh 及其glob 限定符
N
设置 NULL_GLOB 选项.
仅选择纯文件(即省略目录)n
打开 NUMERIC_GLOB_SORT 选项所以