TRi d'adresses IP

Résolu
Bonjour à tous ,
J'aimerais trier des adresses IP contenu dans un fichier à partir d'un terminal via la commande sort:

% cat data
10.10.10.10
10.11.10.11
10.11.10.9
123.108.4.56

% sort ??? < data
10.10.10.10
10.11.10.9
10.11.10.11
123.108.4.56

J'ai pensé à faire sort -n -k IP mais je ne sais pas comment indiquer qu'il faut trier chaque colonne. J'ai essayé de remplacer les points par des espaces et faire un pipe avec sort comme ceci:

sed 's/./ /g' data | sort -n -k 1,4 data

Visiblement 1,4 ne signifie pas trier de la colonne 1 jusqu'à la 4!
Merci de bien vouloir m'aider

2 réponses

  1. merci!!! ah sort -g marche aussi!
    1. Modérateur
      sort -g marche aussi
      Pas chez moi ;-((

      Je l'avais essayé en 1er mais sans succès ;-(
    2. est ce que c'est normal que certaines commandes marchent chez certaines personnes et pas chez d'autres?
    3. Modérateur
      Tout dépend du système et de la distrib ;-\

      Beaucoup de choses sont en train de changer sur les distributions GNU/Linux, en bien ou en mauvais, je n'en sais rien ;-((

      Toujours est-il que ça bouge. Par exemple sur ma Mandriva 2010, je n'ai plus de pages man pour uniq, ls, etc. ;-(

      De même la version de "sort" a été remplacée par une implémentation en Perl :

      NAME
             sort - perl pragma to control sort() behaviour
      
      SYNOPSIS
                 use sort 'stable';          # guarantee stability
                 use sort '_quicksort';      # use a quicksort algorithm
                 use sort '_mergesort';      # use a mergesort algorithm
                 use sort 'defaults';        # revert to default behavior
                 no  sort 'stable';          # stability not important
      
                 use sort '_qsort';          # alias for quicksort
      
                 my $current;
                 BEGIN {
                     $current = sort::current();     # identify prevailing algorithm
                 }
    4. ok! je comprend mieux! merci