加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 实现ls’-v标志的便携方式(即按版本排序)?

发布时间:2020-12-15 21:39:54 所属栏目:安全 来源:网络整理
导读:我正在研究一些构建脚本,我只想依赖标准化功能. 我需要按版本排序一些文件.假设文件是??bar-1.{0,2,3} bar-11.{0,3}. 默认情况下,ls给了我: bar-1_0bar-11_0bar-11_2bar-11_3bar-1_2bar-1_3 使用’ls -v’可以轻松获得我想要的东西: bar-1_0bar-1_2bar-1_3
我正在研究一些构建脚本,我只想依赖标准化功能.
我需要按版本排序一些文件.假设文件是??bar-1.{0,2,3} bar-11.{0,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’ is not standard.标准sort似乎也缺乏我想要的选项,尽管我可能会看旧版本的规格.

任何人都可以建议一种可移植的方式来实现这种效果,而不是编写我自己的排序程

谢谢,
里斯

解决方法

sort -n -t- -k2似乎做你想要的. -n给你数字(即非字母)排序; -t-将字段分隔符设置为 –,– k2选择第二个字段,即版本号.

我的排序,在Ubuntu上,甚至正确地用下划线做部分,但我不确定这是否是标准的.可以肯定的是,您可以先按次要版本排序,然后按主要版本排序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读