Hallo Sabine
Gegeben seien zwei ASCII-Textdateien:
a) eine kleine sortierte Wortliste und
b) ein großes und umfangreiches Dokument.
Es soll eine dritte Datei erstellt werden,
in der alle Wörter aus a), die auch in b) vorhanden sind,
ausgegeben werden. Nützlich wäre auch die Angabe der
Textposition bzw. die Häufigkeit.
OK. Bernhard hat ja schon einige Hinweise
dazu gegeben.
Vielleicht gibt es schon eine Implementierung in Perl?
Dazu braucht man keine „Implementierung in Perl“
zu haben. Das Problem ist relativ einfach zu
formulieren.
(Da Du hier schreibst, nehme ich an, dass
Du erstmal nur eine Teilaufgabe lösen möchtest).
Falls man den gesamten Text in einem
Skalar $fulltext und alle Suchworte
hintereinander in einem Skalar $wordlist
hätte, würde folgende Schleife die
(Kern-)Aufgabe erfüllen:
for( split /\s+?/, $<u>wordlist</u> ) {
while( $<u>fulltext</u> =~ m/($\_)/sgi ) {
print ++$counts-\>{$\_}, ". $1 at pos $-[0] to $+[0] ($\_)\n";
}
}
Das würde jeweils die Treffer-Positionen
(Wortanfang bis Wortende) und die Anzahl
der Treffer $counts->{SUCHWORT} liefern.
Als Suchwort könnte hierbei auch ein regulärer
Ausdruck verwendet werden, z.B.: Sabi\w*?\b
(findet alle Worte, die mit Sabi anfangen),
oder eben einfach ‚Sabine‘.
Ich will Dir natürlich nicht den Spass nehmen,
die Aufgabe komplett zu lösen, also alles mit
- Datei-1 einlesen nach $fulltext,
- Datei-2 einlesen nach $wordlist,
- Datei-3 ausgeben gefundener Treffer und Häufigkeiten.
Aber das kannst Du nun hinbekommen
Grüße
CMБ