Fusion de 2 tableaux avec Perl
Fermé
Loulou
-
20 janv. 2012 à 01:09
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 20 janv. 2012 à 16:52
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 20 janv. 2012 à 16:52
A voir également:
- Fusion de 2 tableaux avec Perl
- Supercopier 2 - Télécharger - Gestion de fichiers
- Fusionner 2 tableaux excel - Guide
- Comment fusionner 2 pdf - Guide
- Tableaux croisés dynamiques - Guide
- Word numéro de page 1/2 - Guide
1 réponse
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 099
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