Fusion de 2 tableaux avec Perl
Fermé
Loulou
-
20 janv. 2012 à 01:09
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 20 janv. 2012 à 16:52
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 20 janv. 2012 à 16:52
A voir également:
- Fusion de 2 tableaux avec Perl
- Fusionner 2 pdf - Guide
- Jdownloader 2 - Télécharger - Téléchargement & Transfert
- Fusionner 2 tableaux excel - Guide
- 2 comptes whatsapp - Guide
- Tableaux croisés dynamiques - Guide
1 réponse
[Dal]
Messages postés
6057
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
17 mars 2023
1 043
Modifié par [Dal] le 20/01/2012 à 16:54
Modifié par [Dal] le 20/01/2012 à 16:54
Salut Loulou,
Tu peux faire cela en splittant les valeurs et en les stockant dans un hash.
Si je comprends bien ton problème, tu cherches les valeurs de "etiquette" dans fichier1 par rapport à l'entrée de la colonne nom1. Ton exemple de données est donc incomplet pour obtenir le résultat que tu donnes en exemple, car il n'y a pas GX10, ni GX15, ni GX23 dans la colonne nom1 de fichier1.
alors en supposant :
Dal
Tu peux faire cela en splittant les valeurs et en les stockant dans un hash.
Si je comprends bien ton problème, tu cherches les valeurs de "etiquette" dans fichier1 par rapport à l'entrée de la colonne nom1. Ton exemple de données est donc incomplet pour obtenir le résultat que tu donnes en exemple, car il n'y a pas GX10, ni GX15, ni GX23 dans la colonne nom1 de fichier1.
alors en supposant :
$ cat fichier1
nom1;sequence;etiquette
GX1;X23DF;SS1
GX2;X23DG;SS2
GX3;X23KG;SS1
GX10;xxx;SS1
GX15;xxx;SS3
GX23;xxx;SS5
$ cat fichier2
nom2;number;nom1
c1;1;GX15
c1;1;GX23
c2;2;GX10
$ cat ajoutecolonne.pl
#!/usr/bin/perl -w
use strict;
my %Etiquette;
my @line_split;
open(FICH,"fichier1") || die ("Erreur d'ouverture de fichier1");
while (<FICH>)
{
chomp;
@line_split = split(/;/);
if ($line_split[0] ne "nom1")
{
$Etiquette{$line_split[0]} = "$line_split[2]";
}
}
close(FICH);
open(FICH,"fichier2") || die ("Erreur d'ouverture de fichier2");
while (<FICH>)
{
chomp;
@line_split = split(/;/);
if ($line_split[0] ne "nom2")
{
print "$_;$Etiquette{$line_split[2]}\n";
}
}
$ ./ajoutecolonne.pl
c1;1;GX15;SS3
c1;1;GX23;SS5
c2;2;GX10;SS1
Dal