GNU/Linux >> Tutoriels Linux >  >> Linux

Trier des nombres avec plusieurs décimales en bash

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.


Linux
  1. Gérer plusieurs instances de service avec systemctl

  2. Conserver l'historique de Bash dans plusieurs terminaux Windows ?

  3. Bash -c avec des paramètres positionnels ?

  4. Tableaux bash avec exemples

  5. Trier plusieurs clés avec le tri Unix

Qu'est-ce que Git Bash ? Travailler avec les commandes Git Bash

Comment écrire un script bash avec des exemples

Tutoriel Bash HereDoc avec exemples

Comment créer des documents avec des scripts Bash

Syntaxe Bash If Else avec exemples

Comment écrire une chaîne de plusieurs lignes en utilisant Bash avec des variables ?