[erledigt] Inhalt von Textdateien vergleichen (kein diff)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
rksteve
Beiträge: 716
Registriert: 11.09.2003 12:24:53
Kontaktdaten:

[erledigt] Inhalt von Textdateien vergleichen (kein diff)

Beitrag von rksteve » 17.05.2010 22:20:58

Hallo!

Ich habe hier Textdateien die ich vergleichen sollte. Die Dateien enthalten pro Zeile nur jeweils ein Wort, allerdings sind die Zeilen in beiden Files nicht sortiert. Ein diff scheidet hier aus da es Zeilenweise vergleicht. Was gibt es für Tools die das trotzdem erledigen? Vielleicht hat auch jemand ein Idee wie man die Dateien zuvor sortieren kann?
Schlußendlich sollten dur die Zeilen ausgegeben werden die nur in jeweils einem File drinnen sind.

lg,
Steve
Zuletzt geändert von rksteve am 18.05.2010 12:28:02, insgesamt 1-mal geändert.
Ich? Nein, ich bin keine Signatur, ich mach hier nur sauber...

uname
Beiträge: 12422
Registriert: 03.06.2008 09:33:02

Re: Inhalt von Textdateien vergleichen (kein diff)

Beitrag von uname » 17.05.2010 22:28:45

Ich löse das mit folgendem Perl-Programm. Vielleicht etwas grausam programmiert.

Aufruf diff.pl a.txt b.txt

Code: Alles auswählen

#! /usr/bin/perl
open(FILE,"$ARGV[0]");
@a = <FILE>;
close (FILE);
foreach $ent (@a)
{
  $a {$ent} = 1;
}
open(FILE,"$ARGV[1]");
@b = <FILE>;
close (FILE);
foreach $ent (@b)
{
  $b {$ent} = 1;
}
foreach $ent (@a)
{
    if ($b {$ent} != 1 )
    {
      print $ent ;
    }
}
foreach $ent (@b)
{
    if ($a {$ent} != 1)
    {
      print $ent ;
    }
}

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: Inhalt von Textdateien vergleichen (kein diff)

Beitrag von roli » 18.05.2010 09:21:39

Hi,

Code: Alles auswählen

#!/bin/bash

sort a.txt >a.tmp
sort b.txt >b.tmp

diff a.tmp b.tmp

rm a.tmp
rm b.tmp
das könnte man jetzt auch noch was ausbauen, indem man beispielsweise die Dateinamen dem Script im Aufruf mit uebergibt, ...
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

yeti

Re: Inhalt von Textdateien vergleichen (kein diff)

Beitrag von yeti » 18.05.2010 09:52:13

Bashisch gesagt:

Code: Alles auswählen

diff <(<file1.txt sort) <(<file2.txt sort)

Benutzeravatar
rksteve
Beiträge: 716
Registriert: 11.09.2003 12:24:53
Kontaktdaten:

Re: Inhalt von Textdateien vergleichen (kein diff)

Beitrag von rksteve » 18.05.2010 12:21:18

danke sehr für die Antworten.

Funktioniert tadellos.

lg,
steve
Ich? Nein, ich bin keine Signatur, ich mach hier nur sauber...

Antworten