Dateien sortieren und dann vergleichen

S

se1111

Hallo,

es gibt verschiedene Progrämmchen (möglichst via Kommandozeile und unter
Windows) die Dateien vergleichen können.
ZB. GNU Tools:
diff.exe

Ich will Dateien vergleichen, die inhaltlich gleich sind, bei denen aber manchmal die Zeilen nicht an den
selben Stellen sind. D.h.

Datei_1:
yxc
abc
0xAFFE

Datei_2:
yxc
0xAFFE
abc


Ist es richtig, dass man dann vorher mit "sort" sortiert und dann "diff" aufruft?

Ich habe mir das bash 2.03 runtergeladen, um an das "sort" heranzukommen.
Ist das so der richtige Weg? Leider bin ich kein Unix Kenner. Das ganze soll daher auch unter XP ablaufen.

Danke und Gruß !
 
Hi,

willkommen auf UB!

Das Sortieren stelle ich mir ein wenig aufwendig vor. Interessanter fuer dich duerften Pruefsummen sein.
 
Hallo,

Code:
#!/bin/sh

if [ "$( sort datei1.txt )" == "$( sort datei2.txt )" ]; then
  echo "gleich"
else
  echo "ungleich"
fi

Und am besten die Toolchain von http://gnuwin32.sourceforge.net/ benutzen. Es gibt dutzende Versionen der Tools unter gleichem Namen, die sich alle anders verhalten können.

Edit: Ich sehe gerade, dass es bei gnuwin32 gar keine Shell als solche gibt. Damit erübrigt sich das obige Shellscript. Außerdem gabs da vor dem edit einen peinlichen useless use of cat.

Mit Batch müsste es etwa so ausschauen. Keine Garantie, das ist kein Windowsforum. Bin mir nicht sicher, ob die Pipe funktioniert. Der Aufruf wäre dann compare.cmd Datei1.txt Datei2.txt
Code:
@ECHO OFF

FOR /f "tokens=* delims= " %%a in ('sort %1 ^| md5sum ^| cut -d" " -f1') do SET FILE1=%%a
FOR /f "tokens=* delims= " %%a in ('sort %2 ^| md5sum ^| cut -d" " -f1') do SET FILE2=%%a

IF %FILE1%==%FILE2% GOTO :OK
echo ungleich
GOTO :CONTINUE
:OK
echo gleich

:CONTINUE
echo weiter
 
Zuletzt bearbeitet:

Ähnliche Themen

Datei Inhalt sortieren!

Zurück
Oben