【发布时间】:2013-03-04 17:15:02
【问题描述】:
我正在尝试从我有一个程序的多个版本的目录中获取最大版本号
例如,如果 ls 的输出是
something01_1.sh
something02_0.1.2.sh
something02_0.1.sh
something02_1.1.sh
something02_1.2.sh
something02_2.0.sh
something02_2.1.sh
something02_2.3.sh
something02_3.1.2.sh
something.sh
我通过以下方式获得最大版本号 -
ls somedir | grep some_prefix | cut -d '_' -f2 | sort -t '.' -k1 -r | head -n 1
现在,如果我想同时检查系统中已有的版本号,最好的方法是什么...
在 bash 中我得到了这个工作(如果 2.5 是当前版本)
(ls somedir | grep some_prefix | cut -d '_' -f2; echo 2.5) | sort -t '.' -k1 -r | head -n 1
还有其他正确的方法吗?
编辑:在上面的例子中 some_prefix 是 something02。
编辑:这里的实际问题是
(ls smthing; echo more) | sort
这是将两个命令/程序的输出合并到第三个的最佳方法吗?
【问题讨论】:
-
你有没有考虑使用像
git这样的真正的版本控制系统???? -
这个决定不是我做的。
标签: linux bash shell unix pipe