我有一个包含名称模式为UPDATE[x.y.z]
的脚本的文件夹,其中x.y.z
是脚本的版本。
我需要的是一个运行按版本排序的脚本的bash脚本,因此字母排序不好。
例如,UPDATE1.11.0
应在UPDATE1.2.3
之后执行。
我可以使用比较器来指示排序顺序吗?如果没有,还能怎样做呢?
答案 0 :(得分:1)
答案 1 :(得分:1)
如果您没有GNU排序(即您使用的是OSX或FreeBSD或NetBSD),您可以通过对不同的字段进行排序来伪造它。
[ghoti ~]$ printf "foo1.2.3\nfoo1.11.0\nfoo1.4.1\nfoo1.4.0\n" | sort -nt. -k2,3
foo1.2.3
foo1.4.0
foo1.4.1
foo1.11.0
[ghoti ~]$
这忽略了主要版本号,因为它没有用点分隔。但无论如何它可能对你有用。