Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2008, 14h04   #1
Invité régulier
 
Inscription : août 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 42
Points : 7
Points : 7
Par défaut trier un fichier particulier command sort shell

Bonjour,

Voila j'ai des milliers de fichier de ce format :

Code :
1
2
3
blabalbal 4.236523 12.56
blaplerel  5.325 5.32
blebelbelbel 4.23666 45.23

et j'aimerais les trier selon la 2eme colonne en ordre decroissant donc :

Code :
1
2
3
blaplerel  5.325 5.32
blebelbelbel 4.23666 45.23
blabalbal 4.236523 12.56

J'ai donc lu le man de sort et tenter la commande:
mais ça trie mal j'ai des erreurs de trie dedans je comprends pas pourquoi ?
Avez vous une solution ???


Merci pour votre attention,
Mister
Mistervanhalen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 15h04   #2
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 15h19   #3
Invité régulier
 
Inscription : août 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 42
Points : 7
Points : 7
Citation:
Envoyé par ripat Voir le message

Merci pour ta réponse toutefois, cette commande ne prend pas en compte les nombres négatifs. Existe t il un commande pour tenir compte des négatifs ?

Merci beaucoup en tout cas,

Mister
Mistervanhalen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 15h31   #4
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Oui, avec l'option --numeric sort:
Code :
sort -k 2nr,2 ton-fichier
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 16h10   #5
Invité régulier
 
Inscription : août 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 42
Points : 7
Points : 7
Citation:
Envoyé par ripat Voir le message
Oui, avec l'option --numeric sort:
Code :
sort -k 2nr,2 ton-fichier
non ça marche pas


sort -k 2nr,2 1A2K1.sort | head
/tmp/1A2K1_struct/Complex_103g.pdb 5.94647 20.759
/tmp/1A2K1_struct/Complex_10g.pdb 5.65807 16.536
/tmp/1A2K1_struct/Complex_154g.pdb 5.44294 13.562
/tmp/1A2K1_struct/Complex_224g.pdb 5.12877 21.744
/tmp/1A2K1_struct/Complex_241g.pdb 5.85960 19.849
/tmp/1A2K1_struct/Complex_275g.pdb 5.71539 20.362
/tmp/1A2K1_struct/Complex_5g.pdb 5.96212 15.983
/tmp/1A2K1_struct/Complex_700g.pdb 5.06020 16.988
/tmp/1A2K1_struct/Complex_728g.pdb 5.52281 19.407
/tmp/1A2K1_struct/Complex_87g.pdb 5.06673 1.445

La deuxieme colonne n'est pas trier par order décroissant et meme n'est pas tier du tout...
C'est normal ?

Mister
Mistervanhalen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 16h22   #6
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Non, ce n'est pas normal. Voici ce que ça donne chez moi:
Code :
1
2
3
4
5
6
7
8
9
10
11
jeanluc@ibm:~/scripts/test$ sort -k 2nr,2 fichier
/tmp/1A2K1_struct/Complex_5g.pdb 5.96212 15.983
/tmp/1A2K1_struct/Complex_103g.pdb 5.94647 20.759
/tmp/1A2K1_struct/Complex_241g.pdb 5.85960 19.849
/tmp/1A2K1_struct/Complex_275g.pdb 5.71539 20.362
/tmp/1A2K1_struct/Complex_10g.pdb 5.65807 16.536
/tmp/1A2K1_struct/Complex_728g.pdb 5.52281 19.407
/tmp/1A2K1_struct/Complex_154g.pdb 5.44294 13.562
/tmp/1A2K1_struct/Complex_224g.pdb 5.12877 21.744
/tmp/1A2K1_struct/Complex_87g.pdb 5.06673 1.445
/tmp/1A2K1_struct/Complex_700g.pdb 5.06020 16.988
Version sort: sort (GNU coreutils) 5.97
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 16h29   #7
Invité régulier
 
Inscription : août 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 42
Points : 7
Points : 7
Citation:
Envoyé par ripat Voir le message
Non, ce n'est pas normal. Voici ce que ça donne chez moi:
Code :
1
2
3
4
5
6
7
8
9
10
11
jeanluc@ibm:~/scripts/test$ sort -k 2nr,2 fichier
/tmp/1A2K1_struct/Complex_5g.pdb 5.96212 15.983
/tmp/1A2K1_struct/Complex_103g.pdb 5.94647 20.759
/tmp/1A2K1_struct/Complex_241g.pdb 5.85960 19.849
/tmp/1A2K1_struct/Complex_275g.pdb 5.71539 20.362
/tmp/1A2K1_struct/Complex_10g.pdb 5.65807 16.536
/tmp/1A2K1_struct/Complex_728g.pdb 5.52281 19.407
/tmp/1A2K1_struct/Complex_154g.pdb 5.44294 13.562
/tmp/1A2K1_struct/Complex_224g.pdb 5.12877 21.744
/tmp/1A2K1_struct/Complex_87g.pdb 5.06673 1.445
/tmp/1A2K1_struct/Complex_700g.pdb 5.06020 16.988
Version sort: sort (GNU coreutils) 5.97
Bin mince alors pourtant j'ai une version récente :
COPYRIGHT
Copyright © 2008 Free Software Foundation, Inc. License GPLv3+: GNU
GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
GNU coreutils 6.9.92.4-f088d-dirtJanuary 2008

Comment je peux faire ? J'ai testé sur ma machine avec une debian Lenny et sur mon lieux de travail avec une RedHat et j'ai exactement la meme chose... Existe t il une alternative ? Est ce que la taille des fichiers peut impliquer ce genre d'erreur car ce sont de fichiers de 10 000 lignes ?

Mister
Mistervanhalen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 16h48   #8
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 88
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 88
Points : 36
Points : 36
c'est un soucis de . ou , certainement. Tu dois avoir un Linux français, et un sort français qui ne reconnait pas les chiffres avec un . en tant que chiffre ! Remplace les . par des, et teste de nouveau.
pschmidtke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 16h51   #9
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
ou bien force la locale sur C:
Code :
$ LC_ALL=C sort -k 2nr,2 fichier
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 18h56   #10
Invité régulier
 
Inscription : août 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 42
Points : 7
Points : 7
C'était bien une histoire de version française qui ne prend pas en compte les points mais les virgules.

J'ai procédé à un query replace du coup. Je note ta commande ripat pour tester.


Merci beaucoup en cas pour votre aide !!!


Mister
Mistervanhalen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h06.


 
 
 
 
Partenaires

Hébergement Web