Ähnlichkeits-Suche-Tool für Textdateien gesucht

Ralf_AM

Newbie
Registriert
Aug. 2016
Beiträge
4
Hallo,

ich suche ein Programm/Tool oder sonstige Lösung für eine Ähnlichkeitssuche in Textdateien.
Habe schon hunderte Suchergebnisse und Webseiten durchgesehen und Beschreibungen von allen
möglichen Diff-/Merge-Tools durchgelesen, aber ich finde einfach nichts passendes :-(

Folgendes Problem:
Ich habe mehrere Textdateien, die ich miteinander vergleichen möchte. In diesen Textdateien
sind viele Sätze bzw. Zeilen, die einen ähnlichen - aber nicht identischen - Inhalt haben.

Beispiel:
DATEI 1.txt
shell:Common AppData hidden C:\ProgramData
shell:Common Desktop C:\Users\Public\Desktop
shell:Common Documents C:\Users\Public\Documents
shell:CommonDownloads C:\Users\Public\Downloads
shell:CommonMusic C:\Users\Public\Music
shell:CommonPictures C:\Users\Public\Pictures
shell:Common Programs hidden C:\ProgramData\Microsoft\Windows\Start Menu\Programs
shell:CommonRingtones hidden C:\ProgramData\Microsoft\Windows\Ringtones
shell:Common Start Menu hidden C:\ProgramData\Microsoft\Windows\Start Menu
shell:Common Startup hidden C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
shell:Common Templates hidden C:\ProgramData\Microsoft\Windows\Templates
shell:CommonVideo C:\Users\Public\Videos

DATEI 2.txt
shell:Common Documents
shell:Common Desktop
shell:CommonMusic
shell:Common Startup
shell:CommonDownloads
shell:Common Start Menu
shell:CommonPictures
shell:Common Programs
shell:CommonVideo
shell:Common AppData

Wie ihr erkennen könnt:
a) sind die Einträge von Datei 2 auch alle in Datei 1, allerdings fehlt in Datei 2 die Beschreibung
b) sind in Datei 1 einige Einträge, die in Datei 2 nicht vorhanden sind
c) sind die Einträge in Datei 2 nicht in derselben Reihenfolge wie in Datei 1

GESUCHT:
Ich suche ein Tool etc., dass
- 2 (Text-)Dateien vergleicht
- alle Zeilen der einen Datei mit allen Zeilen der anderen Datei abgleicht und dabei einen
"Ähnlichkeitsvergleich" durchführt, d.h. dass z.B. der Eintrag "shell:Common Documents"
aus Datei 2 genommen wird und in allen Zeilen der Datei 1 gesucht wird, ob dieser Eintrag
dort in irgendeiner Zeile enthalten ist.
- Wenn also ein Eintrag aus Datei 2 in irgendeiner Zeile der Datei 1 enthalten ist, dann
sollen diese beiden Zeilen
a) markiert werden und z.B. entweder mit einer Line verbunden werden oder mit einer Zahl
gekennzeichnet werden (falls möglich)
b) die Möglichkeit bestehen, dass man einen der beiden Einträge (also den aus Datei 1 oder
den aus Datei 2) löschen kann
c) Am Wichtigsten: die Möglichkeit, dass man manuell oder automatisch einen der
Einträge (den kurzen aus Datei 2 oder den langen aus Datei 1) in eine neue Textdatei
schreiben lassen kann.
Wichtig wäre dabei noch, dass man die "Ähnlichkeitssuche" noch näher eingrenzen kann, wie z.B.
- Suchtext beginnt erst ab Spalte X in´Datei 1 / Spalte Y in Datei 2
- Vergleiche nur eine Anzahl von 10 Zeichen ab Spalte X / vom Anfang / vom Ende der Zeile
- Vergleiche komplette Zeile(n) aus Datei X mit allen Zeilen der Datei Y
- Beginne mit der Vergleichssuche erst ab Zeile Z und höre XX Zeilen vor dem Ende der Datei mit
der Suche auf
- Ignoriere Leerzeichen vor/nach/innerhalb Suchtext bzw. Suchzeilen

Vielleicht kann mir ja hier jemand helfen und kennt ein entsprechendes Programm/Tool. Ich kann
mir irgendwie nicht vorstellen, dass es sowas wirklich nicht gibt und noch niemand so eine
Suche nach ähnlichen aber nicht komplett identischen Textteilen gebraucht hätte. Wenn ich
Programmierkenntnisse hätte, dann würde ich mir so ein Tool auf jeden Fall selbst schreiben,
falls es das wirklich nicht geben sollte (kleiner indirekter Aufruf an alle Programmierer :-)

Danke schonmal
Ralf
 
Beyound Compare ... vergleicht Dateien ( nicht nur Text auch Bilder Video etc. ) findet Dupleten in Verzeichnissen und stellt Unterschiede da.
 
@Shagrath
Danke. Diese beiden kannte ich jetzt noch nicht - aber leider lässt sich damit ähnlicher Text bzw. Teiltext auch
nicht automatisch suchen/hervorheben.

@owned_you
Tools, die Dateiduplikate finden, hab ich dutzendweise. Ich brauch jedoch ein Tool, das den Text in einer Datei
zeilenweise mit dem Text in einer anderen Datei vergleicht und mir dann die Zeilen anzeigt/hervorhebt, in denen
dieser Text teilweise in der anderen Datei vorkommt. Bitte nochmal meinen Anfangsthread lesen, was unter GESUCHT
steht.

Folgende Tools hab ich mir schon runtergeladen und ausprobiert:
AptDiff
Araxis Merge
Beyond Compare
Compare.It
diff-ext
DiffPlug
Diffuse
DiffVue
Dupli Find
ExamDiff Pro
KDiff3
Kompare
Meld
Sublime Text
tkdiff
UltraCompare
WDiff32
WinMerge
Leider konnte ich das von mir Gewünschte mit keinem der Programme durchführen (oder ich hab nicht
rausgefunden, wie es mit einem der Tools funktionieren soll)
 
Die "einfachen" diff-Tools sind in der Regel alle nicht so prall wenn es darum geht großartig Muster zu erkennen. Wie auch, woher soll das Programm wissen auf welches Muster du aus bist. Also müsstest du wenn schon entweder ein Programm finden welches du großartig einstellen kannst, oder du passt die Daten an.

Ich würde als Erstes die Inhalte der Textfiles sortieren. Das Erleichtert den meisten diff-Tools das Auffinden von Differenzen und Ähnlichkeiten erheblich. Wenn es die einfachen Werkzeuge nicht können gäbe es noch die Möglichkeit einfach ein Script zu schreiben, welches einzelne Strings aus einem File extrahiert und sucht ob die im anderem File vorkommen + Weiterverarbeitung des Ganzen.
 
@Piktogramm
Das Programm müsste gar nicht großartig zum Einstellen sein. Im Gegenteil, eigentlich ist die Aufgabe ja ganz
simpel:
- Gehe Datei 1 Zeile für Zeile durch
- Vergleiche jede Zeile, die in Datei 1 vorkommt mit jeder Zeile in Datei 2
- Wenn die Zeile bzw. das was in einer Zeile von Datei 1 steht auch in einer Zeile in Datei 2 vorkommt (also in einer Zeile von Datei 2 enthalten ist), dann
a) markiere diese beiden Zeilen entweder farblich oder mit einer Nummer
b) lass mich auswählen, welche der beiden Zeilen in eine 3. Datei geschrieben wird (oder mache es automatisch, wenn ich vorher die Datei (1 oder 2) angegeben habe, aus welcher die Zeilen genommen und in eine 3. Datei geschrieben werden sollen)

Ist ja im Prinzip dasselbe, was auch die ganzen Diff-Tools machen - nur dass diese LEIDER immer nur dann eine Übereinstimmung anzeigen, wenn beide Zeilen komplett identisch sind - und nicht, wenn der Inhalt der Zeile einer Datei in der Zeile einer anderen Datei (teilweise) enthalten ist.

Ach ja, und ich hatte im Anfangsthread erwähnt, dass ich leider nicht programmieren kann, also auch mit Script schreiben nix am Hut hab. Und wenn ich jetzt erst noch eine Scriptsprache lernen soll, dann nehm ich lieber die 10 Dateien und vergleich die 20-50 Einträge manuell - das geht dann wohl noch schneller.

Wundert mich echt, dass bei einem Dateiinhaltsvergleich scheinbar niemand so eine Suche nach ähnlichen Zeilen/Sätzen brauchen sollte. Mir würden dazu hundert Beispiele einfallen wo so etwas sinnvoll wäre.
 
Hey Ralf, klingt nach ner guten Idee für ein Tool. Ich denke ich werde das mal in Excel umsetzen. Kann mir aber auch nicht vorstellen, dass es sowas noch nicht gibt. Vielleicht ist die Aufgabe einfach zu trivial, als dass sich jemand die Mühe macht so ein Tool hochzuladen.
 
Hi Janush,
zu trivial glaub ich jetzt nicht - sonst gäb es ja die ganzen Diff-Tools auch nicht :-)
Aber wenn du das mit Excel hinkriegst, wär natürlich super.
 
Ha, glaube nicht das so schnell was wird. Bin momentan sehr busy. Allerdings kann ich Dir gern bescheid geben, sollte es jemals eine funktionierende Version geben.
 
Zurück
Oben