便携式的方式来实现ls'的-v标志(即按版本排序)?(Portable way to ach

2019-07-19 17:43发布

我工作的一个,我想只依赖于标准化的功能的一些构建脚本。 我需要的版本,一些文件进行排序。 说,文件是酒吧-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”不达标 。 标准排序也似乎缺少我想要的选项,尽管我可能是在寻找旧版本的规格的。

任何人都可以提出一个可移植的方式来实现写我自己的排序例程的这种效果的短?

谢谢,里斯

Answer 1:

sort -n -t- -k2似乎做你想要什么。 -n给你的数字(即不是字母顺序)排序; -t-设置字段分隔符--k2选择第二场,即版本号。

我的sort ,在Ubuntu上,即使不正确使用下划线的部分,但我不知道这是标准的。 可以肯定,你可以用较小的版本先进行排序,然后通过主要版本。



文章来源: Portable way to achieve ls' -v flag (i.e. sort by version)?