Bonjour,

Cela fait un petit moment que je suis bloquée sur un script qui permettrait de récupérer des informations en provenance de 2 fichiers pour les intégrer dans un 3ème.

Contenu du fichier 1 ($txt) :

num1;comments

Contenu du fichier 2 ($final) :

num2;rule;status

Contenu souhaité du fichier 3 :

Pour les valeurs $num2 égales à $num1, le contenu serait : num2(ou $num1);rule;status;comments
Pour les autres valeurs $num2, le contenu serait : num2;rule;status

Voici ce que j'ai le code que j'ai écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/perl
 
# Ouverture des 2 fichiers
 
open $TXT, "<", $ARGV[0] or die "Ouverture impossible de $ARGV[0] $!";
open $FINAL, "<", $ARGV[1] or die "Ouverture impossible de $ARGV[1] $!";
 
# Parcours des fichiers
 
@lines1 = <$TXT>;
@lines2 = <$FINAL>;
 
foreach $line1 (@lines1) {	
 
	chomp($line1);
	@items_txt = split(/;/,$line1);
 
	# Récupération des informations du fichier 1
 
	$num1=$items_txt[0];
	$comments=$items_txt[1];
 
	foreach $line2 (@lines2) {
 
		chomp($line2);
		@items_final = split(/;/,$line2);
 
		# Récupération des informations du fichier 2
 
		$num2=$items_final[0];
 
		# Affichage
 
		if($num1 eq $num2) {
 			print "$line2;$comments\n";	
		}
 
		else {
			print "$line2\n";
		}
	}	
}
 
close($TXT);
close($FINAL);
J'obtiens juste les lignes correspondant aux valeurs $num1 et $num2 égales. Comment afficher les autres lignes $num2 ?

Merci beaucoup !