Fusion de 2 tableaux avec Perl
Fermé
Loulou
-
20 janv. 2012 à 01:09
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 20 janv. 2012 à 16:52
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 20 janv. 2012 à 16:52
A voir également:
- Fusion de 2 tableaux avec Perl
- Fusionner 2 tableaux excel - Guide
- Fusionner 2 pdf - Guide
- Tableaux croisés dynamiques - Guide
- 2 comptes whatsapp - Guide
- Word numéro de page 1/2 - Guide
1 réponse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
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