Änderungen an Texten mit Perl herausfinden

Hallo,

ich habe in 2 Perl Skalaren jeweils einen Text. Der 1. ist das Original. Im 2. steht die Änderung des 1. Nun bräuchte ich eine Übersicht der Änderungen. Einfügungen, Löschungen und Änderungen. Natürlich muss so etwas programmierert werden. Ist ja nicht so trivial und bestimmt aufwendig. Hat so etwas jemand schon einmal gemacht?

Thomas

Erstmal zum Verständnis
Hallo Thomas,

also verstehe ich dich , dass Du etwas in der Art:

$1=„Dies ist der originaltext von mir“;
$2=„Das ist jetzt der Originaltext“;
[Black-Box]
$3=„Das [Dies] ist jetzt der O_[o]_riginaltext (von mir)“;

willst ? Oder ?

Arne

Ich hoffe du willst mich nicht nur heiß machen.
Ja genau! Das ist es.

Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hmmm… also das ist wirklich nicht trivial.

Wenn Wortweise Betrachtung reicht:

den String in einzelne Wörter zerlegen, die Wörter Zeichen für Zeichen vergleichen und bei Unterschied mit den folgenden Wörtern vergleichen.
kein Treffer => neues Wort (ersetzung)
Treffer => alle Worte dazwischen wurden gelöscht / ersetzt.

Sowas in der Art ?

Arne

Hallo Arne,

und ich hab mir wirklich schon Illusionen gemacht. Na ja.
Wenn so etwas programmieret werden muss dann muss ich mich halt hinsetzen. Ich dachte halt nur, es gäbe vielleicht schon so etwas, das man verwenden kann.

Danke trotzdem,

Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Thomas,

ich habe in 2 Perl Skalaren jeweils einen Text. Der 1. ist das
Original. Im 2. steht die Änderung des 1. Nun bräuchte ich
eine Übersicht der Änderungen. Einfügungen, Löschungen und
Änderungen. Natürlich muss so etwas programmierert werden. Ist
ja nicht so trivial und bestimmt aufwendig. Hat so etwas
jemand schon einmal gemacht?

Am einfachsten ist es, Du benutzt das Programm „diff“,
das standardmaessig unter Linux/UNIX zur Verfuegung
steht. Das zeigt dir alle Unterschiede zwischen 2 Dateien (!)
an.

Syntax: diff datei1 datei2

Beispiel:

t1.txt:
Dies ist ein Test
Zweite Zeile
END

t2.txt:
Dies ist ein Test
Zwte Zeile
END 

bash-2.02# diff t1.txt t2.txt
2,3c2,3
 Zwte Zeile
\> END 

Das Tool gibt es auch als Windowsportierung.
Ausserdem findet es sich im Editor Emacs unter
dem Namen „ediff“.

Gruss,

-Andreas.