便携式的方式来实现ls'的-v标志(即按版本排序)?
题
我工作的一个,我想只依赖于标准化的功能的一些构建脚本。 我需要的版本,一些文件进行排序。说的文件是酒吧-1。{0,2,3}杆11。{0,2,3}
默认情况下,LS给我:
bar-1_0
bar-11_0
bar-11_2
bar-11_3
bar-1_2
bar-1_3
获取我想要的东西是很容易使用 'LS -v':
bar-1_0
bar-1_2
bar-1_3
bar-11_0
bar-11_2
bar-11_3
的问题是, 'LS -v' 不是标准 。标准排序也似乎缺少我想要的选项,尽管我可能是看着旧版本的规格的。
任何人都可以提出一个可移植的方式来实现写我自己的排序例程的这种效果的短?
谢谢, 里斯
解决方案
sort -n -t- -k2
似乎做你想要什么。 -n
给你的数字(即不是字母)进行排序; -t-
设置字段分隔符-
,和-k2
选择第二场,即版本号。
我sort
,在Ubuntu上,即使不正确使用下划线的部分,但我不知道这是标准的。可以肯定,你可以用较小的版本先进行排序,然后通过主版本。
不隶属于 StackOverflow