bash – UNIX:按编号/版本排序文件,不带0填充
发布时间:2020-12-15 22:03:57 所属栏目:安全 来源:网络整理
导读:最终,我想将最新版本设置为环境变量,因此补充所选答案(这为我提供了正确的排序): export LATEST_VERSION=$(printf '%sn' * | sort -rV | head -1) 我有一个目录,其中包含以下目录名称: ls -1r .2.01.816.116.015.515.014.514.114.01.31.21.1.51.1.31.1.2
最终,我想将最新版本设置为环境变量,因此补充所选答案(这为我提供了正确的排序):
export LATEST_VERSION=$(printf '%sn' * | sort -rV | head -1) 我有一个目录,其中包含以下目录名称: ls -1r . 2.0 1.8 16.1 16.0 15.5 15.0 14.5 14.1 14.0 1.3 1.2 1.1.5 1.1.3 1.1.2 我想对它们进行排序以获得最新版本: ls -1r . | head -1 16.1 因此基础订单应如下所示: 16.1 16.0 15.5 15.0 14.5 14.1 14.0 2.0 1.8 1.3 1.2 1.1.5 1.1.3 1.1.2 任何帮助将不胜感激.越简单越好,但我对任何解决方案都持开放态度.谢谢! 解决方法
现代GNU排序提供-V标志,用于根据版本号规则进行排序:
$printf '%sn' * | sort -rV 16.1 16.0 15.5 15.0 14.5 14.1 14.0 2.0 1.8 1.3 1.2 1.1.5 1.1.3 1.1.2 注意,上面没有使用ls.作为一般规则,you shouldn’t parse the output of ls(1). 文档 从男人排序:
以上内容来自GNU手册页. FreeBSD’s sort还支持-V. OSX Apple的sort是从2005年开始的GNU排序,早于对-V选项的支持.可以在here找到解决方法.(帽子提示:l’L’l,mklement0) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |