2

スクリプトのバージョンがUPDATE[x.y.z]どこにあるかという名前のパターンを持つスクリプトを含むフォルダーがあります。x.y.z

私が必要としているのは、バージョン順にスクリプトを実行するbashスクリプトです。したがって、アルファベット順は適切ではありません。

たとえば、のUPDATE1.11.0後に実行する必要がありますUPDATE1.2.3

そのソート順を指示するために使用できるコンパレータはありますか?そうでない場合、他にどのようにそれを行うことができますか?

4

2 に答える 2

1

GNUsortまたはそれをサポートする別のバージョンがある場合は、バージョンソートを使用できます。

sort -V

また

sort --version-sort

また、ここでの私の答えでは、バージョンを比較するスクリプトを投稿しました。

于 2012-06-12T14:00:37.563 に答える
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 ~]$

ドットで区切られていないため、メジャーバージョン番号を見逃しています。しかし、とにかくそれはあなたのために働くかもしれません。

于 2012-06-12T14:13:41.160 に答える