作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我已经编写了一个 bash 脚本,我需要在依赖于 sort
命令的 linux 和 macOS 上以相同的方式工作。我将 git tag -l
的输出通过管道传递给 sort
,以按照正确的语义顺序获取所有版本标签的列表。 GNU 提供了 -V
这使得它变得自动但 macOS 不支持这个论点,所以我需要弄清楚如何在没有它的情况下完成这个排序顺序。
6.3.1.1
6.3.1.10
6.3.1.11
6.3.1.2
6.3.1.3
...
需要排序为
6.3.1.1
6.3.1.2
6.3.1.3
...
6.3.1.10
6.3.1.11
最佳答案
您可以使用 git tag
的附加功能来获取与模式匹配的标签列表,并根据版本标签顺序正确排序(通常没有前导零):
$ git tag --sort v:refname
v0.0.0
v0.0.1
v0.0.2
v0.0.3
v0.0.4
v0.0.5
v0.0.6
v0.0.7
v0.0.8
v0.0.9
v0.0.10
v0.0.11
v0.0.12
来自 $ man git-tag
:
--sort=<type>
Sort in a specific order. Supported type is "refname
(lexicographic order), "version:refname" or "v:refname"
(tag names are treated as versions). Prepend "-" to reverse
sort order. When this option is not given, the sort order
defaults to the value configured for the tag.sort variable
if it exists, or lexicographic order otherwise. See
git config(1).
关于macos - 如何在 macOS 上模拟 "sort -V",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21394536/
我是一名优秀的程序员,十分优秀!