Page 1 of 1

vergleich von 2 Textdateien

Posted: 2006-09-28 23:49
by tsaenger
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

Re: vergleich von 2 Textdateien

Posted: 2006-09-29 00:18
by flo
ich hab so etwas mal übelst mit einer while-Schleife zusammengehackt - ich glaube nicht, daß diff so etwas könnte!?

flo.

Re: vergleich von 2 Textdateien

Posted: 2006-09-29 00:23
by tsaenger
Hast du denn vllt. die while-schleife noch?

Gruß

Tobias

Re: vergleich von 2 Textdateien

Posted: 2006-09-29 00:30
by Joe User
man comm
:roll:

Re: vergleich von 2 Textdateien

Posted: 2006-09-29 00:32
by flo
nein, das war so ein 10-Minuten-Job, der händisch Stunden gedauert hätte - ein paar hundert DNS-Zonen über Server zu verteilen.

Code: Select all

cat textfile1 | while read line; do
    tmpline=`grep "${line}" | wc -l`
   if [ $tmpline -eq 0 ]; then
       echo $line > textfile3
   fi
done;
Ob das funzt, hängt aber auch vn den Dateien ab.

Geht aber sicher auch mit sed, awk oder ähnlichem, wenn man schon programmiert ...

flo.

(Der seit Montag bei jeweils unterschiedlichen Kunden Windows-Netze baut und kein Start-Menü mehr sehen kann und jetzt Heia macht.)

Re: vergleich von 2 Textdateien

Posted: 2006-09-29 10:52
by dotme
Wenn Du auf die ursprüngliche Reihenfolge verzichten kannst:

$ cat file1 file2 file2 | sort | uniq -u > file1.out

P.S. Oops, kleine Korrektur - Du willst ja nur die eindeutigen Zeilen aus file1