suppression doublons dans fichier texte - Shell/Batch - Programmation
Marsh Posté le 06-11-2009 à 18:34:08
Grogay a écrit : |
Bien entendu. sort -u vérifie l'unicité de la ligne entière.
Ton fichier faut le passer par un filtre (en shell ou en ce que tu veux) qui checke si l'identificateur est dupliqué.
Exemple en shell
Code :
|
A chaque ligne, tu vérifies si l'espère est la même que celle de la ligne précédente. Si c'est le cas t'es sur une espèce dupliquée donc tu la sautes sinon tu mémorises l'espèce et t'affiches la ligne. Ca marchera à condition que le fichier soit trié sur l'espèce évidemment...
Tu peux écrire le même algo en awk ou en Python ce qui sera plus rapide.
Marsh Posté le 06-11-2009 à 18:25:01
Bonjour à Tous,
J'ai regardé partout sur le net et sur ce forum afin de trouver ce que je cherche: les sujets sur des suppressions de doublons sont nombreux, trop peut être et j'avoue être perdu.
J'ai un fichier texte d'environ 3000 lignes:
"
HE 0 10.200 2.576 0.000 0.000 0.000 ! *
AR 0 136.500 3.330 0.000 0.000 0.000
A 0 136.500 3.330 0.000 0.000 0.000
E 0 850. 425. 0.000 0.000 1.000 ! singh
CL 0 130.8 3.613 0.000 0.000 1.000 ! singh
CL- 0 130.8 3.613 0.000 0.000 1.000 ! singh
HCL 1 344.7 3.339 1.084 0.000 1.000 ! singh
F 0 80.000 2.750 0.000 0.000 0.000
HF 1 330.000 3.148 1.920 2.460 1.000 ! sv/mec
HF0 1 352.000 2.490 1.730 0.000 5.000
HF1 1 352.000 2.490 1.730 0.000 5.000
HF2 1 352.000 2.490 1.730 0.000 5.000
HF3 1 352.000 2.490 1.730 0.000 5.000
HF4 1 352.000 2.490 1.730 0.000 5.000
HF5 1 352.000 2.490 1.730 0.000 5.000
"
Dont voici un extrait. La première colonne représente des espèces chimiques, les autres des données associées à l'espèce en début de ligne.
Le problème est que sur les 3000 lignes, il existe des espèces similaires avec quasi les mêmes propriétés.
Je voudrais donc détruire les lignes dont les espèces sont en double, triples etc, pour ne laisser qu'une seule ligne correspondant à une espèce sachant que le nom des espèces sont écrit sur les 18 premiers emplacements.
J'ai essayé des sort -u etc... mais rien ne marche.
Un peu d'aide serait la bienvenue.
Merci d'avance
Cordialement
Grogay
Message édité par Grogay le 06-11-2009 à 18:25:14