Vérifier s'il y a des doublons dans fichier

goodsister-bis Messages postés 4 Statut Membre -  
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour à tous,
Je fais appel à votre talent d'informaticien pour me sauver!
Je suis en train d'extraire des données de fichiers pour les rediriger dans un fichier qui les contiendra et cela grace à Perl le problème c'est que je ne trouve pas le moyen de vérifier si des informations sont en doubles.

Exemple de ligne dans le fichier :

hsa-mir-856 48 heart ATGG
hsa-mir-29 30 heart GTGC
hsa-mir-856 48 ATGG non

Je voudrais que lors de la vérification de doublons il m'affiche le résultat suivant par rapport à l'exemple du dessus :
hsa-mir-856 48 heart ATGG non
hsa-mir-29 30 heart GTCC

En gros qu'il conserve l'ensemble des informations pour un meme nom (hsa-mir...) et l'affiche en une ligne.

Est-ce réalisable?
A voir également:

5 réponses

lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

La clé qu'on cherche c'est hsa-mir ?
Ensuite il faut pour chaque clé eliminé les doublons et garder les infos?
Les infos doivent être dans quelle ordre?

0
goodsister-bis Messages postés 4 Statut Membre
 
Salut,

oui la clé c'est ce qui commence par hsa-mir....
Ce que je cherche à faire c'est concaténer les informations qui sont complémentaires pour avoir une seule ligne pour chaque hsa-mir.... à la fin!
En ce qui concerne l'ordre cela m'importe peu à moins que tu es quelque chose pour les mettre dans l'ordre alphabétique en même temps.

Merci pour ta réponse
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

hsa-mir-856
hsa-mir-29


En fait tu as 2 clés dans ton exemple.
Tout commence en fait avec hsa-mir ?

Peux tu donner un exemple plus détaillé ?

0
goodsister-bis Messages postés 4 Statut Membre
 
reuh,

effectivement dans mon exemple il n'y a que deux clés.
Tout commence par hsa-mir-([a-zA-Z0-9])

hsa-mir-856 48 heart ATGG
hsa-mir-29 30 heart GTGC
hsa-mir-856 48 ATGG non

--> Ici on a 5 paramètres (exemple: hsa-mir-856 pour le premier, 48 pour le deuxieme, heart pour le troisieme, ATGG pour le quatrieme et non pour le dernier)
ce que je cherche c'est avoir une ligne pour un nom de microARN (hsa-mir-...), autrement dit qu'on est une ligne avec les 5 paramètres sur celle ci plutot que d'avoir deux lignes ayant le meme nom de microARN ou clé (hsa-mir...), en faite faire en sorte que les "trous" dans la ligne soient comblés.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,
lami20j@debian-acer:~$ cat hsa.pl 
#!/usr/bin/perl
use strict;use warnings;
my %h;

while(<DATA>){
  my ($x,@x)=split;
  push @{$h{$x}},@x;
}

for(sort keys %h){
  my %dublon;
  my @unique = sort grep {!$dublon{$_}++} @{$h{$_}};
  print "$_ => @unique\n";
}
__END__
hsa-mir-856 48 heart ATGG
hsa-mir-29 30 heart GTGC
hsa-mir-856 48 ATGG non
lami20j@debian-acer:~$ perl hsa.pl
hsa-mir-29 => 30 GTGC heart
hsa-mir-856 => 48 ATGG heart non


0