我很难在线找到使用字母和数字对绝对目录路径进行排序的解决方案。
示例是名为 test.txt 的文件中的以下内容
/opt/informix/data/dcdwhdev/rootdbs.2
/opt/informix/data/dcdwhdev/db1.1
/opt/informix/data/dcdwhdev/db1.10
/opt/informix/data/dcdwhdev/db1.11
/opt/informix/data/dcdwhdev/rootdbs.1
/opt/informix/data/dcdwhdev/db1.12
/opt/informix/data/dcdwhdev/db1.19
/opt/informix/data/dcdwhdev/db1.2
/opt/informix/data/dcdwhdev/db1.21
/opt/informix/data/dcdwhdev/db1.22
/opt/informix/data/dcdwhdev/db1.23
/opt/informix/data/dcdwhdev/db1.3
/opt/informix/data/dcdwhdev/db1.31
/opt/informix/data/dcdwhdev/db1.32
/opt/informix/data/dcdwhdev/db1.33
以下是我想要实现的目标:
/opt/informix/data/dcdwhdev/db1.1
/opt/informix/data/dcdwhdev/db1.2
/opt/informix/data/dcdwhdev/db1.3
/opt/informix/data/dcdwhdev/db1.10
/opt/informix/data/dcdwhdev/db1.11
/opt/informix/data/dcdwhdev/db1.12
/opt/informix/data/dcdwhdev/db1.19
/opt/informix/data/dcdwhdev/db1.21
/opt/informix/data/dcdwhdev/db1.22
/opt/informix/data/dcdwhdev/db1.23
/opt/informix/data/dcdwhdev/db1.31
/opt/informix/data/dcdwhdev/db1.32
/opt/informix/data/dcdwhdev/db1.33
/opt/informix/data/dcdwhdev/rootdbs.1
/opt/informix/data/dcdwhdev/rootdbs.2
如果您有 GNU
sort
(可能gsort
在您的系统上被调用,或者位于/opt/gnu/bin
目录中,或者来自 IBM.com 上的coreutils RPM):如果
zsh
可用(IBM.com 上的 RPM 包):或者直接列出该目录中的文件:
如果没有,您可以使用
perl
例如:我们通过比较所有十进制数字序列被零填充到 6 位之后的行来对列表进行排序。
如果文件中的行总是这样的形状,并且您只需要比较前面的部分并且只在
.
词法上比较它,然后在数字上比较它之后的部分,那么,您可以这样做:我的过程是将名称分成 2,然后排序并重新组合