在我们的项目中,我们会定期签出名为release/2.4
或类似内容的新分支。目前,如果我git branch -r | grep -o "release/[0-9]*\.[0-9]*$"
它将生成如下输出:
release/2.29
release/2.30
release/2.31
release/2.32
release/2.4
release/2.5
release/2.6
release/2.7
release/2.8
release/2.9
release/3.0
release/3.1
release/3.10
release/3.11
release/3.2
release/3.3
release/3.4
release/3.5
release/3.6
release/3.7
release/3.8
release/3.9
如您所见,最新版本分支肯定是release/3.11
,但是它位于release/3.1
和release/3.2
之间。
我尝试git branch -r | grep -o "release/[0-9]*\.[0-9]*$" | sort -n -t "." -k 2 | tail -1
先用"."分隔序列,然后按第二列排序。但是,这会产生release/2.32
,因为 32 要大得多。
如何使用 shell 脚本(可能是命令sort
或sed
(来获取release/3.11
?
尝试sort --version-sort
或sort -V
。