Probier mal:
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
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %lut;
my $file1 = './file1.txt';
my $file2 = './file2.txt';
open(my $fh,"<",$file1) or die $!;
while (<$fh>) {
chomp;
my @cur = split(/;/);
push @{$lut{$cur[0]}->{$cur[2]}->{$cur[1]}}, $cur[3];
}
close $fh;
open(my $fh2,"<",$file2) or die $!;
while(<$fh2>){
my ($number,$path) = (split(/,/,$_))[2,3];
my ($path1,$path2) = split(/\//,$path);
if(exists $lut{$path1}->{$path2}->{$number}){
my $string = join(" # ",@{$lut{$path1}->{$path2}->{$number}});
print $string,"\n";
}
}
close $fh2;
Getestet mit folgenden Dateien:
file1.txt
KWER02;262;P1-3-1-1-5-2.0;80077
KWER02;15;P1-3-1-1-5-2.0;80078
KWER02;262;P1-3-1-1-5-1.0;80078
KWER02;15;P1-3-1-1-1-1.0;80093
TDUI01;46;P4-5-1.83;82180
WCOL02;13;P1-1-2-4.0.100;81684
KWER02;14;P1-3-1-1-1-1.0;80091
KWER02;262;P1-3-1-1-1-1.0;80092
WCOL02;14;P1-1-2-4.0.100;81685
WCOL02;15;P1-1-2-4.0.100;81686
WCOL02;13;P1-1-2-4.0.116;81687
TDUI01;46;P2-8-1.75;82189
SJAK01;46;P2-8-3.0;82197
TDUI01;46;P2-10-1.80;82198
file2.txt
2006/01/26,Pfad,46,SJAK01/P2-8-1.0,3263422
2006/01/26,E1,13,WCOL02/P1-1-2-4.0.100,0
2006/01/26,E1,262,KWER02/P1-3-1-1-5-2.0,53