sort -g numbers
Ça fera. Selon la page de manuel de tri, -g
est destiné au tri numérique :
-g, --general-numeric-sort
comparer selon la valeur numérique générale
Vous avez besoin du -t. drapeau pour spécifier '.' comme séparateur, et les multiples spécificateurs de position de clé gèrent les nombres progressivement plus longs/plus profonds. Je ne comprends toujours pas exactement comment ça marche, mais ça marche...
sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n numbers
ou
cat numbers | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n
Il y a un drapeau spécial pour ce -V
pour les numéros de version
$ sort -V numbers
1.0
1.1
1.3
1.3.3
1.4-p1
1.6.1
1.11.4
1.15
2.2.2
2.2.10
2.4
2.4.6
ps. cette option est disponible dans GNU Coreutils et peut être manquante dans d'autres implémentations.