PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash: Komando bei unterschiedlichem Inhalt in Dateien



r2k
27-05-2005, 17:09
Hallo Zusammen
ich bin mit meinem kleinen Bash Script mit dem Latein am Ende:
Ich habe zwei Dateien mit Inhalt (jeweils eine Zeile).

Nun möchte ich, falls die Dateien nicht mehr den selben Inhalt haben, eine Aktion ausfüren.

Also etwa so

if [datei1 inhaltandersals datei2]; then
echo "anderes inhalt"
else
echo "gleicher inhalt"
fi

Leider habe ich keine Idee, wie ich das realiseiren könnte.


Falls jemand was in Perl (oder einer anderen Sprache hat) was genau diesen zweck tut, ist das auch ok. Ich bin nicht auf die Bash fixiert.

Danke für Tipps
r2k

peschmae
27-05-2005, 18:53
Beispielsweise mit md5summen vergleich. Das geht aber so genau nur wenn die Dateien genau gleich sind.



if [ "$(md5sum 1 | awk '{print 1}')" = "$(md5sum 2|awk '{print 1}')" ] ; then
echo gleich
else
echo verschieden
fi


MfG Peschmä

Hans-Georg Normann
27-05-2005, 19:05
Oder heute mal ohne awk:

set $(md5sum datei1)
DAT1=$1
set $(md5sum datei2)
DAT2=$1

if [ "$DAT1" = "$DAT2" ] ; then
echo gleich
else
echo verschieden
fi Hans

Joghurt
27-05-2005, 20:02
Geht auch einfacher:
if diff -q Datei1 Datei2 >/dev/null; then
echo Dateien gleich
else
echo Dateien verschieden
fi

r2k
28-05-2005, 10:43
Besten Dank für alle Tipps.

Ich habe mich für die letzte Version entschieden, da sie so schön kurz ist :)

Gruess
r2k