Как я могу получить правильное название последней версии ветки с помощью сортировки оболочки? - PullRequest
1 голос
/ 09 октября 2019

В нашем проекте мы периодически проверяем новые ветви под названием 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?

1 Ответ

2 голосов
/ 09 октября 2019

Попробуйте sort --version-sort или sort -V.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...