Thread Arrayvergleich - Index von gefundenen Einträgen (2 answers)
Opened by ferdi317 at 2010-11-25 18:41

topeg
 2010-11-25 19:13
#143044 #143044
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Lese die Referenzdaten in einen Hash, der macht dann das suchen für dich. Ich gehe mal davon aus, dass keine Wörter doppelt vorkommen.
Nicht getestet:
Code (perl): (dl )
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
#!/usr/bin/perl
use strict;
use warnings;
my $hfgwrt_file='hfgwrtnew.txt';
my $lexikon_file='bosslexikon.txt';
my $out_file='out.txt';

my %bossgra=();
open(my $lfh, '<', $lexikon_file) || err_open($lexikon_file);
while (<$lfh>)
{
  chomp;
  my ($bossgra, $bosspho) = split /\t/, $_;
  $bossgra{$bossgra}=$bosspho;
}
close($lfh);

open(my $infh, '<', $hfgwrt_file) || err_open($hfgwrt_file);
open(my $ohf,  '>', $out_file)    || err_open($out_file);
while(my $hfgwrt=<$infh>)
{
  chomp($hfgwrt);
  if(my $bosspho=$bossgra{$hfgwrt})
  {
    print $ohf "$hfgwrt\t$bosspho\n";
  }
}
close($ohf);
close($infh);

sub err_open
{
  my $file=shift;
  die "Datei $file konnte nicht geöffnet werden! ($!)\n";
}

Wenn Groß/Kleinschreibung oder ähnliche Schreibweisen-Änderungen auch gefunden werden sollen wird es etwas komplizierter.

View full thread Arrayvergleich - Index von gefundenen Einträgen