Dateien vergleichen, Zeilen entfernen
ein triviales Problem, aber ich komm' gerade nicht drauf: gegeben seien zwei Text-Dateien mit Zahlen, eine pro Zeile. Aus Datei 2 sollen nun alle Zeilen entfernt werden, die auch in Datei 1 vorkommen. Bitte erleuchtet mich! ;-) Tom
Thomas Götz wrote:
ein triviales Problem, aber ich komm' gerade nicht drauf:
gegeben seien zwei Text-Dateien mit Zahlen, eine pro Zeile. Aus Datei 2 sollen nun alle Zeilen entfernt werden, die auch in Datei 1 vorkommen.
Bitte erleuchtet mich! ;-)
Tom
Hallo Tom,
würde ein kurzes Skript schreiben, bei dem Du jede Zeile in Datei1
abarbeitest und dabei Datei2 jeweils in einen Tempfile schreibst, also z.B.
Hallo Joachim, On Mon, Sep 13, 2004 at 11:53:28AM +0200, Joachim Kieferle wrote:
Thomas Götz wrote:
gegeben seien zwei Text-Dateien mit Zahlen, eine pro Zeile. Aus Datei 2 sollen nun alle Zeilen entfernt werden, die auch in Datei 1 vorkommen.
würde ein kurzes Skript schreiben, bei dem Du jede Zeile in Datei1 abarbeitest und dabei Datei2 jeweils in einen Tempfile schreibst, also z.B.
#! /bin/sh for zahl in `cat datei1`; do cp datei2 tempfile grep -v $zahl tempfile > datei2 rm tempfile done
die Datei 2 wird überschrieben und tempfile gelöscht. Ohne Backup schlechte Idee :) Aber gut. Jeder macht inzwischen Backups *fg* Das grep sollte durch etwas wie grep -v "^$zahl$" tempfile > datei2 ersetzt werden. Damit die Zeile "1" nicht "12" "123" rauswirft. das rm tempfile kann man weglassen, wenn cp -f datei2 tempfile genutzt wird. Greetings Daniel -- ..::"Das Licht am Ende eines Tunnels könnte auch ein Zug sein"::..
Hilft dir der Befehl 'diff' vielleicht weiter? Joe -- Suse 9.1 Kernel 2.6.7-mm5 KDE 3.3 Medion 6100: P4@2.6GHz - 512MB DDR-RAM - Geforce4 488Go
participants (4)
-
Daniel Lord
-
Joachim Kieferle
-
Joe Kalden
-
Thomas Götz