Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux按数值对文件夹排序_Linux_Bash_Sorting_Grep_Numeric - Fatal编程技术网

Linux按数值对文件夹排序

Linux按数值对文件夹排序,linux,bash,sorting,grep,numeric,Linux,Bash,Sorting,Grep,Numeric,我们有一个来自 ls -1 /opt/test/kortinfo/ 1.0.0 1.0.1 1.0.2 1.1.0 1.10.0 // Error 1.2.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.8.1 1.9.0 正如我们在这里看到的,文件夹1.10.0放错了位置,因为它大于1.9.0 我们试图通过管道将其传递到sort-g、sort-n和sort-ng中,但这两种方法都无法正确显示按数字值排序的文件夹 l

我们有一个来自

ls -1 /opt/test/kortinfo/
1.0.0
1.0.1
1.0.2
1.1.0
1.10.0            // Error
1.2.0
1.3.0
1.4.0
1.5.0
1.5.1
1.5.2
1.6.0
1.7.0
1.8.0
1.8.1
1.9.0
正如我们在这里看到的,文件夹
1.10.0
放错了位置,因为它大于
1.9.0

我们试图通过管道将其传递到
sort-g
sort-n
sort-ng
中,但这两种方法都无法正确显示按数字值排序的文件夹

ls -1 /opt/test/kortinfo/ | grep -v "siste" | sort -ng
1.0.0
1.0.1
1.0.2
1.1.0
1.10.0            // Still the same error
1.2.0
1.3.0
1.4.0
1.5.0
1.5.1
1.5.2
1.6.0
1.7.0
1.8.0
1.8.1
1.9.0

有人知道如何按数值正确排序吗?

使用
ls的
-v
开关:

ls -v
man ls
说:

-v文本中(版本)编号的自然排序


使用
ls
-v
开关:

ls -v
man ls
说:

-v文本中(版本)编号的自然排序


作为参考,如果适用,还可以使用大括号扩展填充版本号来解决此问题

这里有一个例子

touch 1.{01..10}.{01..05}
这将创建具有适当版本表示填充的版本,并显著简化您的生活

结果是:

mace-windu:useme [ ~/Desktop/1 ] ls -1
1.01.01
1.01.02
1.01.03
1.01.04
1.01.05
1.02.01
1.02.02
1.02.03
1.02.04
1.02.05
1.03.01
1.03.02
1.03.03
1.03.04
1.03.05
1.04.01
1.04.02
1.04.03
1.04.04
1.04.05
1.05.01
1.05.02
1.05.03
1.05.04
1.05.05
1.06.01
1.06.02
1.06.03
1.06.04
1.06.05
1.07.01
1.07.02
1.07.03
1.07.04
1.07.05
1.08.01
1.08.02
1.08.03
1.08.04
1.08.05
1.09.01
1.09.02
1.09.03
1.09.04
1.09.05
1.10.01
1.10.02
1.10.03
1.10.04
1.10.05

作为参考,如果适用,还可以使用大括号扩展填充版本号来解决此问题

这里有一个例子

touch 1.{01..10}.{01..05}
这将创建具有适当版本表示填充的版本,并显著简化您的生活

结果是:

mace-windu:useme [ ~/Desktop/1 ] ls -1
1.01.01
1.01.02
1.01.03
1.01.04
1.01.05
1.02.01
1.02.02
1.02.03
1.02.04
1.02.05
1.03.01
1.03.02
1.03.03
1.03.04
1.03.05
1.04.01
1.04.02
1.04.03
1.04.04
1.04.05
1.05.01
1.05.02
1.05.03
1.05.04
1.05.05
1.06.01
1.06.02
1.06.03
1.06.04
1.06.05
1.07.01
1.07.02
1.07.03
1.07.04
1.07.05
1.08.01
1.08.02
1.08.03
1.08.04
1.08.05
1.09.01
1.09.02
1.09.03
1.09.04
1.09.05
1.10.01
1.10.02
1.10.03
1.10.04
1.10.05

我觉得自己像个白痴。感谢您提供了一个简单的解决方案!我的解决方案是:`sort-t-我觉得自己像个白痴。感谢您提供了一个简单的解决方案!我的解决方案是:`sort-t-k1,1nr-K2,2nr-K3,3nr´