В нашем проекте мы периодически проверяем новые ветви под названием 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 намного больше.
Как использовать сценарий оболочки (вероятно, команду sort
или sed
), чтобы получить release/3.11
?