我正在开发一些构建脚本,我只想依赖标准化功能。
我需要按版本对一些文件进行排序。假设文件是 bar-1.{0,2,3} bar-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似乎也缺少我想要的选项,尽管我可以查看旧版本的规格。
除了编写我自己的排序例程之外,任何人都可以建议一种可移植的方法来实现这种效果吗?
谢谢,
里斯
sort -n -t- -k2
似乎做你想做的事。-n
为您提供数字(即非字母)排序;-t-
将字段分隔符设置为-
, and -k2
选择第二个字段,即版本号。
My sort
,在 Ubuntu 上,甚至正确地执行了带下划线的部分,但我不确定这是否是标准的。当然,您可以先按次要版本排序,然后再按主要版本排序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)