mittels diff mehrere Dateien vergleichen

Dieses Thema im Forum "Debian/Ubuntu/Knoppix" wurde erstellt von 2TAKTER, 04.01.2008.

  1. #1 2TAKTER, 04.01.2008
    2TAKTER

    2TAKTER Foren As

    Dabei seit:
    26.11.2007
    Beiträge:
    94
    Zustimmungen:
    0
    Ort:
    Würzburg (zugezogen)
    Hi
    also ich habe die Datei "FILE.DEFAULT.RC" welche ich gerne mit den dateien
    • FILE.1.RC
    • FILE.2.RC
    • FILE.3.RC
    • FILE.4.RC
    • usw

    vergleichen möchte. Eine statische Eingabe aller Dateien möchte ich umgehen, da die Liste der zu vergleichenden Dateien sich dynamisch erweitern lassen soll. Gibt es eine Option bei diff? Die man-Page hilft mir nicht genau das zu finden was ich suche.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. foexle

    foexle Kaiser

    Dabei seit:
    02.05.2007
    Beiträge:
    1.104
    Zustimmungen:
    0
    Ort:
    Saarbrücken
    wie wäre es denn mit nem shellscript ?

    wenn ich das richtig verstanden habe dann sind die datein alle in einem ordner du machst ein ls dann lässt du zählen wieviel da drin sind übergibst den wert deinem shellscript und das läuft dann per schleife durch und vergleicht
    diff *.i.rc mit *.i+1.rc

    zumindest ist das ein ansatz wie man das lösen kann
     
  4. P17

    P17 Schandensbegrenzer

    Dabei seit:
    06.12.2007
    Beiträge:
    196
    Zustimmungen:
    0
    Ort:
    Germany
    for-loop:
    Code:
    for a in *.RC ; do diff FILE.DEFAULT.RC $a; done
    
     
  5. #4 2TAKTER, 04.01.2008
    Zuletzt bearbeitet: 04.01.2008
    2TAKTER

    2TAKTER Foren As

    Dabei seit:
    26.11.2007
    Beiträge:
    94
    Zustimmungen:
    0
    Ort:
    Würzburg (zugezogen)
    naja ich habe das problem, dass ich nicht hoch zählen will... d.h. die zahlen müssen nicht unbedingt chronologisch kommen. es kann z.B. vorkommen, dass es zwar eine .5. gibt aber keine .6. sondern erst wieder eine .14. oder so
    und es befinden sich dateien in dem ordner, die nicht überprüft werden sollen.

    die Lösung klappt nicht wirklich. Dann sagt er mir am laufenden Band
    Code:
    diff: FILE.DEFAULT.RC: No such file or directory
    momentan sind zwei Dateien im Zielordner (FILE.1.RC und FILE.5.RC) welche mit der DEFAULT verglichen werden sollen.


    EDIT:
    Code:
    diff /home/ich/FILE.DEFAULT.RC /home/ich/bla/FILE.*.RC
    wieso klappt das nicht?
    Code:
    diff: extra operand /home/ich/bla/FILE.5.RC
    d.h. doch dass die Dateien gefunden werden oder?
     
  6. #5 SkydiverBS, 04.01.2008
    SkydiverBS

    SkydiverBS Tripel-As

    Dabei seit:
    15.01.2005
    Beiträge:
    207
    Zustimmungen:
    0
    Ort:
    Freising
    Das heißt, das hier ein Parameter zuviel ist, da diff normalerweise nur zwei Parameter erwartet. Du musst zusätzlich die Optionen "--from-file" oder "--to-file" verwenden, wenn du eine Datei mit mehreren anderen vergleichen willst.

    Wirf einfach einen Blick in die diff-Manpage:
    Gruß,
    Philip
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 2TAKTER, 07.01.2008
    2TAKTER

    2TAKTER Foren As

    Dabei seit:
    26.11.2007
    Beiträge:
    94
    Zustimmungen:
    0
    Ort:
    Würzburg (zugezogen)
    Vielen Dank :)
    Mit --from-file klappt das wunderbar.
    Jetzt habe ich nur noch ein Problem: Wie kann ich mir die Datei anzeigen lassen was aus welcher stammt.
    ">" zeigt zwar an, dass dies die veränderte ist, aber nicht welche :hilfe2:
     
  9. #7 SkydiverBS, 09.01.2008
    Zuletzt bearbeitet: 09.01.2008
    SkydiverBS

    SkydiverBS Tripel-As

    Dabei seit:
    15.01.2005
    Beiträge:
    207
    Zustimmungen:
    0
    Ort:
    Freising
    Ich habe leider keine diff-Option gefunden die genau das macht was du willst. Soweit ich das sehe hast du zwei Möglichkeiten:
    1. du verwendest ein anderes Ausgabe-Format (z.B. Option -u oder -c) bei dem der Dateiname mit ausgegeben wird (siehe diff-manpage) oder
    2. du schreibst dir wie von foexle und P17 vorgeschlagen ein Shell-Skript, das in einer Schleife die Dateien durchläuft und mit diff vergleicht. Dann kannst du auch die entsprechenden Dateinamen mit ausgeben.

    Zur 2. Möglichkeit hier mal eine Vorlage von mir, die als ersten Parameter die Datei erwartet, die mit den nachfolgenden Dateien verglichen werden soll.
    Code:
    #!/bin/bash
    
    file1=$1
    shift
    IFS=$'\t'
    files=$*
    
    for file in $files ; do
      if [ "$file" == "$file1" ] ; then
        continue
      fi
      echo "<<< $file1"
      echo ">>> $file"
      diff "$file1" "$file"
    done
    
    Kopiere das Skript und speichere es z.B. unter dem Namen "mdiff.sh" ab. Du kannst es dann wie folgt ausführen:
    Code:
    ./mdiff.sh FILE.DEFAULT.RC *.RC
    Damit dieses Beispiel funktioniert müssen das Skript und die zu vergleichenden Dateien natürlich im aktuellen Verzeichnis liegen.

    Gruß,
    Philip
     
Thema: mittels diff mehrere Dateien vergleichen
Besucher kamen mit folgenden Suchen
  1. shell schleife diff zweier mehrerer dateien

Die Seite wird geladen...

mittels diff mehrere Dateien vergleichen - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. rpm mittels yum

    rpm mittels yum: Hallo Wir haben folgendes System: Red Hat Enterprise Linux Server release 5.1 (Tikanga) (32 Bit - i686) Gerne würde ich darauf dieses...
  3. Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln

    Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln: Ich muß häufiger in 2 bestimmte Verzeichnisse auf 3. oder 4. Ebene wechseln. Um nicht permanent cd /ordnerA/ordnerB/ordnerC... usw eingeben zu...
  4. Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED

    Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED: Hallo zusammen. Ich habe folgendes Anliegen: Ich habe eine HTML Datei mit entsprechenden Tags usw. . Diese möchte ich in eine normale Textdatei...
  5. pdf mittels script öffnen und script dabei weiter ausführen

    pdf mittels script öffnen und script dabei weiter ausführen: Hallo, ich öffne in einen bash Skript eine PDF mit: acroread /.../.../file.pdf Ghet es auch, dass das Skript nach dem öffnen des PDFs weiter...