TRi d'adresses IP

Résolu
gcm -  
 gcm -
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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    sort -t '.' -k 1n -k 2n -k 3n -k 4n data

    ;-))
    0
  2. gcm
     
    merci!!! ah sort -g marche aussi!
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      sort -g marche aussi
      Pas chez moi ;-((

      Je l'avais essayé en 1er mais sans succès ;-(
      0
    2. gcm
       
      est ce que c'est normal que certaines commandes marchent chez certaines personnes et pas chez d'autres?
      0
    3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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
                 }
      0
    4. gcm
       
      ok! je comprend mieux! merci
      0