Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3075 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  suppression doublons dans fichier texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

suppression doublons dans fichier texte

n°1938480
Grogay
Posté le 06-11-2009 à 18:25:01  profilanswer
 

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 cité 1 fois
Message édité par Grogay le 06-11-2009 à 18:25:14
mood
Publicité
Posté le 06-11-2009 à 18:25:01  profilanswer
 

n°1938484
Sve@r
Posté le 06-11-2009 à 18:34:08  profilanswer
 

Grogay a écrit :


J'ai essayé des sort -u etc... mais rien ne marche.


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 :
  1. #!/bin/sh
  2. exec 3<fichier_chimique
  3. while read lig 0<&3
  4. do
  5.     clef=`echo $ligne |cut -f1 -d' '`
  6.     test "$clef" = "$mem" && continue
  7.      mem="$clef"
  8.      echo $ligne
  9. done


 
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.


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  suppression doublons dans fichier texte

 

Sujets relatifs
requete SQL avec effacement du fichier concerné ?Manipulation basique de fichier texte a l'aide de Perl
Problème fichier de configuration hibernatearbre binaire/fonction recursif/lecture fichier
[RESOLU] - Script de copie de dossier en BAT vers plusieurs [...]Texte dynamique + masque = probleme
Regex cherche email dans un fichier texte.echappement fichier struts
Plus de sujets relatifs à : suppression doublons dans fichier texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR