Vergleich von TXT-Dateien und Ausgabe identischer Begriffe
Hallo zusammen,
ich bin trotz meiner Recherchen im Netz bei meinem Problem nicht fündig geworden und suche auf diese Weise Hilfe.
Ich möchte mit Powershell eine große Annzahl von TXT-Dateien vergleichen.
Ausgangsbasis ist eine alphabetisch sortierte TXT-Liste (Wörterbuch als Goldstandard). Ich möchte aus einem Verzeichnis [NAME] mit 1-n Dateien (TXT), ebenfalls vorsortiert, gegen das Wörterbuch abgleichen. Die TXT ist aus einer OCR-Bearbeitung entstanden und ich möchte nur die im Wörterbuch erkannten Zeichenketten (Begriffe) speichern. Falls der Suchbegriff nicht im ersten Wörterbuch enthalten ist, würde idealer Weise gegen eine zweite Wörterbuchdatei geprüft werden. Hierdurch verspreche ich mir kürzere Suchzeiten.
Die Vergleichsdateien haben jeweils ca. 5000-8000 Begriffe (inkl. der falsch erkannten Zeichen).
Im Ergebnis sollen nur ganze Worte, die in beiden Dateien enthalten sind, in einer neuen TXT-Datei gespeichert werden, mit gleichem Namen wie die Ausgangsdatei, nur das Verzeichnis soll anders heißen (z.B. NAME-neu).
Datei 1 - Wörterbuch als Referenz:
Berlin
Freiburg
Hamburg
München
Osnabrück
Datei 2 - [eine von zig 1000 Vergleichsdateien mit OCR-Fehlern]:
Ber
Berlin
Hamburg
Osnabuck
Wisbaden
Ergebnis:
Berlin
Hamburg
Vielleicht hat jemand Spaß dran, mir zu helfen?
Vielen Dank für die Unterstützung!
Jobo
ich bin trotz meiner Recherchen im Netz bei meinem Problem nicht fündig geworden und suche auf diese Weise Hilfe.
Ich möchte mit Powershell eine große Annzahl von TXT-Dateien vergleichen.
Ausgangsbasis ist eine alphabetisch sortierte TXT-Liste (Wörterbuch als Goldstandard). Ich möchte aus einem Verzeichnis [NAME] mit 1-n Dateien (TXT), ebenfalls vorsortiert, gegen das Wörterbuch abgleichen. Die TXT ist aus einer OCR-Bearbeitung entstanden und ich möchte nur die im Wörterbuch erkannten Zeichenketten (Begriffe) speichern. Falls der Suchbegriff nicht im ersten Wörterbuch enthalten ist, würde idealer Weise gegen eine zweite Wörterbuchdatei geprüft werden. Hierdurch verspreche ich mir kürzere Suchzeiten.
Die Vergleichsdateien haben jeweils ca. 5000-8000 Begriffe (inkl. der falsch erkannten Zeichen).
Im Ergebnis sollen nur ganze Worte, die in beiden Dateien enthalten sind, in einer neuen TXT-Datei gespeichert werden, mit gleichem Namen wie die Ausgangsdatei, nur das Verzeichnis soll anders heißen (z.B. NAME-neu).
Datei 1 - Wörterbuch als Referenz:
Berlin
Freiburg
Hamburg
München
Osnabrück
Datei 2 - [eine von zig 1000 Vergleichsdateien mit OCR-Fehlern]:
Ber
Berlin
Hamburg
Osnabuck
Wisbaden
Ergebnis:
Berlin
Hamburg
Vielleicht hat jemand Spaß dran, mir zu helfen?
Vielen Dank für die Unterstützung!
Jobo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2094408810
Url: https://administrator.de/contentid/2094408810
Ausgedruckt am: 24.11.2024 um 06:11 Uhr
5 Kommentare
Neuester Kommentar
Moin,
wenn mich nicht alles täuscht, brauchst du das Compare-Object() mit dem Parameter
Gruß
em-pie
wenn mich nicht alles täuscht, brauchst du das Compare-Object() mit dem Parameter
-ExcludeDifferent
Gruß
em-pie
$quelle = "d:\daten"
$ziel = "d:\daten-neu"
$wbuch1 = "d:\wörterbuch1.txt"
$wbuch2 = "d:\wörterbuch2.txt"
# -----
if(!(Test-Path $ziel)){md $ziel}
$wInhalt = Get-Content -Path $wbuch1,$wbuch2
foreach($file in Get-ChildItem $quelle -file -filter *.txt){
Compare $winhalt @(Get-Content $file.Fullname) -IncludeEqual -ExcludeDifferent -Passthru | set-content "$ziel\$($file.Name)"
}