vergleich von 2 Textdateien

tsaenger

Registered User
Hallo,

Ich würde gerne wissen, wie ich folgendes Problem lösen kann:

Ich habe 2 Text-Files. In denen steht pro Zeile ein String.
Nun würde ich gerne die übereinstimmenden Strings von File1 und File2 aus den Files entfernen, sodass ich in File1 nur noch das drin stehen habe was in File2 nicht steht und andersrum.
Hier kann es auch sein, das der Sting "test" in File1 in Zeile 3 steht und in File2 in Zeile 15. Trotzdem soll dann aber der String aus beiden Files entfernt werden.
Das ist doch bestimmt irgendwie machbar oder?

Gruß & Danke für die Hilfe

Tobias
 
Hallo,

klar ist das machbar, am einfachsten in PHP.

Ansatz zum Ausprobieren:
Code:
<?php
$datei1='datei1.txt';
$datei2='datei2.txt';

$array1=file($datei1);
$array2=file($datei2);

$string1=implode('',$array1);
$string2=implode('',$array2);

  foreach($array1 as $a)
    {
      $a=quotemeta($a);
      $a=preg_replace("/\//",'\/',$a);
      $string2=preg_replace("/$a/s",'',$string2);
    }
  foreach($array2 as $a)
    {
      $a=quotemeta($a);
      $a=preg_replace("/\//",'\/',$a);
      $string1=preg_replace("/$a/s",'',$string1);
    }

$f=fopen("$datei1",'w'); fwrite($f,$string1); fclose($f);
$f=fopen("$datei2",'w'); fwrite($f,$string2); fclose($f);
?>
 
Last edited by a moderator:
Hallo,

vielen Dank für das Script.

Wenn ich es allerdings ausführe, dann bekomme ich folgende meldung:

Warning: Unknown modifier 'n' in /home/htdocs/web1/html/comp.php on line 13

Warning: Unknown modifier 'p' in /home/htdocs/web1/html/comp.php on line 13

Warning: Unknown modifier 't' in /home/htdocs/web1/html/comp.php on line 13

Gruß

Tobias
 
Hallo,

ich hab nachgebessert, bitte nochmal ausprobieren (Probleme mit RegExp-Steuerzeichen in den Dateien).

@v40: wenn's mit diff geht ist die Performance besser, mein Script dürfte bei großen Dateien ziemlich langsam werden.
 
Back
Top