web-dev-qa-db-fra.com

Tri du terminal ne fonctionne pas correctement

J'essaie de trier un fichier texte par sa deuxième colonne. Tout le texte du fichier est au format Word /t number (un mot, une tabulation et son poids). J'essaie de trier le fichier par sa deuxième colonne, par poids, mais les résultats ne sont pas bons. Le fichier est en lecture et en écriture.

La commande que j'utilise est sort -k2,2nr. (ou changez n pour g ou h).

Pas de chance avec l'un d'eux.

exemple de quelques lignes, peut-être que le format compte:

00001930-n      7.18509e-06
00001740-n      4.35957e-05 
00002137-n      1.13377e-05
00002452-n      7.73398e-06
00002684-n      0.000244948 
00003553-n      3.98312e-05
00003993-n      3.98321e-07

quelques résultats ici: il semble que l'exposant n'est pas pris en charge. (ces numéros sont créés avec sort -k2,2nr filename.

02052204-n      3e-06  
01975237-v      1.2e-06  
02288155-v      1.2e-06  
15105733-n      1.4e-06  
00962135-a      1.6e-06  
09719309-n      1.9e-06  
02998269-a      2.5e-05  
11938977-n      3.1e-06  
14498972-n      3.6e-06  
03341153-n      5.4e-07  
01908703-n      6.5e-06  
00257026-r      1.02e-06  
08111599-n      1.03e-05  
2
txorimalo

Vous avez les options échangées, vous avez besoin de:

sort -k2,2gr filename
  • k2,2 définit la clé de tri comme deuxième champ uniquement; g,r est analogue à -g et -r, la seule différence est que cela ne fonctionne que sur la clé lorsqu'elle est utilisée comme ceci
3
heemayl

Résolu Je suis désolé, cela n’a rien à voir avec la fonction de tri, mais je vais laisser une réponse au cas où quelqu'un aurait le même problème.

Le problème était la locale. Je viens d’Espagne et même si ma langue d’exploitation et quelques options supplémentaires étaient en en_US.UTF-8, le numérique était en es_ES.UTF-8. J'ai changé cette valeur locale et le tri a fonctionné. (Je suppose que cela a quelque chose à voir avec le signe de ponctuation.)

0
txorimalo