Я хотел бы сортировать семантические варианты (semver.org)Как сортировать семантические версии в bash?
v1.4.0
v1.4.0-alpha
v1.4.0-alpha1
v1.4.0-patch
v1.4.0-patch9
v1.4.0-patch10
v1.4.0-patch2
v1.5.0
v1.5.0-alpha
v1.5.0-alpha1
v1.5.0-alpha2
v1.5.0-patch
v1.5.0-patch1
в надлежащем порядке. Например, как version_compare()
does in PHP (он не напрямую, а может быть использован для этого).
Конечно, sort -V|--version-sort
здесь не работает.
$ echo 1.0 1.0-alpha | tr ' ' "\n" | sort --version-sort
1.0
1.0-alpha
Есть ли какой-нибудь подход?
P.S.
В общем смысле, он должен следовать этой схеме:
1.0.0-alpha
< 1.0.0-alpha.1
< 1.0.0-alpha.beta
< 1.0.0-beta
< 1.0.0-beta.2
< 1.0.0-beta.11
< 1.0.0-rc.1 < 1.0.0
< 1.0.0-patch < 1.0.0-patch.1.
P.P.S.
Semver 2.0 не поддерживает исправления, но это необходимо.
Если у меня нет версий исправлений не в том месте ... –
True. :) Итак, почему вы добавили это? :) – Kirby
Ум, потому что вы не показали нам свой ожидаемый результат? –