Bonjour à tous,
je veux trier en bash un fichier lili.txt du type :
69 97 91 23 f
54 31 87 14 p
98 23 58 0 k
31 71 53 79 e
56 31 23 75 z
54 31 87 8 x
9 97 38 45 r
53 97 55 49 p
94 31 23 18 h
76 31 23 75 u
selon le champ n seul (ici les champs sont séparés par un blanc) ou du champ n1 au champ n2 et pas au-delà.
Dès le départ il y a une anomalie puisque :
sort -n lili.txt
donne :
54 31 87 8 x
98 23 58 0 k
9 97 38 45 r
31 71 53 79 e
53 97 55 49 p
54 31 87 14 p
56 31 23 75 z
69 97 91 23 f
76 31 23 75 u
94 31 23 18 h
Pourquoi le 9 de la première colonne est-il après le 54 et le 98 ?
sort -k2n
, sort -k4n
, sort -k5d
donnent le résultat attendu mais
sort -k1n
donne le même résultat faux que sort -n
et sort -k2n,4n
donne :
98 23 58 0 k
54 31 87 8 x
94 31 23 18 h
56 31 23 75 z
76 31 23 75 u
54 31 87 14 p
31 71 53 79 e
9 97 38 45 r
53 97 55 49 p
69 97 91 23 f
ce qui ne va pas non plus puisque la 2ème colonne est bien classée mais pas la troisième.
Il semble qu’il y ait un problème avec les nombres à un seul chiffre.