TRi d'adresses IP

Résolu/Fermé
gcm - 1 nov. 2010 à 10:25
 gcm - 1 nov. 2010 à 11:53
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

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
1 nov. 2010 à 10:37
Salut,

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

;-))
0
merci!!! ah sort -g marche aussi!
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
1 nov. 2010 à 10:42
sort -g marche aussi
Pas chez moi ;-((

Je l'avais essayé en 1er mais sans succès ;-(
0
est ce que c'est normal que certaines commandes marchent chez certaines personnes et pas chez d'autres?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
1 nov. 2010 à 11:37
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
ok! je comprend mieux! merci
0