1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#!/usr/bin/perl use 5.010; use strict; use warnings; use DBI; use Data::Dumper; #Filter-Schlagwörter Zeilenweise in ein Array einlesen open (FILTER, "Filter.txt") or die $!; my @filter = <FILTER>; close (FILTER); #print @filter; #Mail.txt öffnen und Zeilenweise in ein Array einlesen open (MAIL, "Email.txt") or die $!; my @mail = <MAIL>; close (MAIL); #print @mail; #Array @filter mit Array @mail vergleichen #bei Übereinstimmung wird ein Counter +1 gesetzt und die Übereinstimmung mit Position ausgegeben (Zeile und x´tes Wort der Zeile) #Es wird NICHT bei der ersten Übereinstimmung gestoppt
2016-11-15T14:00:46 LinuxerFolge hlubenows Link zum Modul, dort findet sich die Doku zum Modul und in der Synopsis stehen Beispiele.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/usr/bin/perl use warnings; use strict; use Tie::File; my @filter; tie(@filter, 'Tie::File', "Filter.txt") or die $!; my $i; foreach $i (@filter) { print "$i\n"; } # Am Ende: untie(@filter);
1 2 3 4 5
...; open(my $filter_fh, "<", "Filter,txt") or die $!; my @filter_qr = map {qr/(?=\Q$_\E)/} <$filter_fh>; close $filter_fh;
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
#!/usr/bin/perl use 5.010; use strict; use warnings; use Data::Dumper; my $ueb = 0; my $anz = 0; my $zeile = 0; my $spam; #Filter-Schlagwörter Zeilenweise in ein Array einlesen ('<' NUR lesen) open (FILTER, '<',"Filter.txt") or die $!; my @filter = <FILTER>; #Per chomp werden die Zeilenumbrüche entfernt chomp @filter; close (FILTER); #print @filter; #Mail.txt öffnen und Zeilenweise in ein Array einlesen ('<' NUR lesen) open (MAIL, '<', "Email.txt") or die $!; my @mail = <MAIL>; close (MAIL); #print "@mail\n"; #Schleife erstellen, bei jedem Druchgang wird ein neuer $spam aus dem Array @filter gewählt foreach $spam (@filter) { $zeile=0; $anz++; #print "|$spam| \n"; foreach my $mail (@mail){ $zeile++; my $position = index($mail, $spam); if ($position != -1){ #Ausgabe der Position etc print "$spam Zeile: $zeile Position: "; print "$position \n"; $ueb++; } } } #Ausgabe print "Es wurden $anz Filter verwendet und $ueb Uebereinstimmungen gefunden\n";