Anzeige:
Ergebnis 1 bis 13 von 13

Thema: kann man dateien automatisch vergleichen?

  1. #1
    Registrierter Benutzer
    Registriert seit
    Aug 2002
    Beiträge
    452

    kann man dateien automatisch vergleichen?

    Ich suche ein proggie, mit dem man dateien unter suse 8.0 automatisch vergleichen kann.
    da ich einen großen download ordner habe, in dem die dateien oft unterschiedlich benannt sind, möchte ich das ungern manuell machen.
    Meine Vorstellung ist, das Proggie ein Verzeichnis durchsuchen zu lassen und das zeigt mir dann alle doppelten dateien an und bietet mir an diese zu löschen oder so...

  2. #2
    Master of Disaster Avatar von marcdevil
    Registriert seit
    Apr 2001
    Beiträge
    2.008
    bastel dir doch ein kleines script, wo die dateien mit diff verglichen werden und wenn diff nix ausspuckt sind die dateien identisch
    Ciao
    --
    Ubuntu@work, android@mobile, debian@server, win7@gamestation, Linux@Home-NAS, Ontap@Netapp, MacOSX@powerbook

  3. #3
    Registrierter Benutzer
    Registriert seit
    Aug 2002
    Beiträge
    452
    ja wenn ich das könnte...

  4. #4
    12te
    Registriert seit
    Dec 2001
    Beiträge
    1.377
    Original geschrieben von marcdevil
    bastel dir doch ein kleines script, wo die dateien mit diff verglichen werden und wenn diff nix ausspuckt sind die dateien identisch

    oder mit md5sum, ich weiß nicht was besser/schneller ist ich arbeite mit beidem nicht viel!
    pornstars-online.de

  5. #5
    Registrierter Benutzer
    Registriert seit
    Dec 1999
    Beiträge
    562
    Hallo XXLRay,

    versuchs mal damit:

    #!/bin/bash

    AltGroesse=0
    AltName="Anfang"

    for i in `ls -S`
    do
    if [ `ls -l $i | awk '{print $5}'` -eq $AltGroesse ]
    then
    # echo -e "`ls $i` \t und \t $AltName \t sind gleich gross"
    if diff $i $AltName >/dev/null
    then
    echo -e "`ls $i` \t und \t $AltName \t sind GLEICH"
    fi
    fi

    AltGroesse=`ls -l $i | awk '{print $5}'`
    AltName=`ls $i`
    done

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 1999
    Beiträge
    562
    Zuerst werden alle Dateien mit ls nach ihrer Groesse sortiert, dann werden gleich grosse Dateien gesucht, falls es gleich grosse Dateien gibt werden sie mit diff verglichen.
    Das Skript hab ich schnell zusammengebastelt, geht sicher auch eleganter ;-)

  7. #7
    Registrierter Benutzer
    Registriert seit
    Aug 2002
    Beiträge
    452
    hey rup erstmal thx, dass du dir soviel Mühe machst und mir das script auf nem Platintablett servierst.
    Leider bin ich der Ultra Mega Noob in Sachen LINUX (wie vermutlich die meisten hier) und hab keine Ahnung wie ich das script ausführen, geschweige denn erstellen soll.
    Hab ech keine Ahnung was ich eintippen soll - tut mir leid meine doofheit. Hab auch schon "man script" probiert. Hat aber nich wirklich was gebracht.
    Und durch die gegoogleten Seiten hab ich mich noch nich durchgearbeitet (viel Müll).

  8. #8
    Premium Mitglied Avatar von RapidMax
    Registriert seit
    Aug 2001
    Beiträge
    1.740
    Ich offerier dir 3 Möglichkeiten[list=1][*]Du öffnest einen Graphischen Editor (KEdit, KWrite, Kate, XEdit usw.) und kopierst dort die Daten rein (mit Markieren kopieren oder mit CTRL-C bzw. CTRL-Ins, mit Mittlerer Maustaste einfügen oder mit CTRL-V bzw. Shift-Ins).
    [*]Du öffnest ein Konsole in einem Fenster und startest dort vi dateivergl.sh, gest mit i in den Einfüge-Modus fügst die vorher kopierten Daten mit der mittleren Maustaste rein. Mit ESC verlässt du den Einfüge-Modus und speicherst mit :wq, dabei beendest du auch gleich den Editor vi.
    [*]Du öffnest eine Konsole in einem Fenster und gibst ein:
    cat - > dateivergl.sh <<EOF
    dann fügst du wieder mit der Mittleren Maustaste das Script ein. Drückst Enter und gibst sogleich EOF ein, dann wieder Enter und schon hast du dein Script eingegeben.[/list=1] Damit kennst du schon einmal die wichtigsten Arten ein Script einzugeben.
    Bei der Programmierung von Scripten hilft man bash und das Buch Linux in a Nutshell.

    Das Script wird dann so ausgeführt:
    ./dateivergl.sh
    Wobei das ./ am Anfang der Shell sagt, dass das Programm im aktuellen Verzeichnis zu suchen ist. Aus Sicherheitsgründen ist der Aktuelle Pfad nicht im Suchpfad vorhanden, so dass niemand z.b. ein Programm das dir die Platte löscht mit dem namen ls im aktuellen Verzeichnis speichern kann, dass du dann versehentlich ausführst.

    Gruss, Andy

  9. #9
    Registrierter Benutzer
    Registriert seit
    Aug 2002
    Beiträge
    452
    hey super Beschreibung - da kann ich das gegoogele aufgeben. Werds gleich mal probieren. Und meld mich dann nochmal obs funzt.

  10. #10
    Registrierter Benutzer
    Registriert seit
    Dec 1999
    Beiträge
    562
    Nachdem du das Sript mit einem Editor gespeichert hast muss du es noch ausfuehrbar machen mit

    chmod 755 Skriptname

    Nun kannst du es mit ./Skriptname starten.

  11. #11
    Registrierter Benutzer
    Registriert seit
    Aug 2002
    Beiträge
    452
    hmm also hab dateivergl.sh erstellt.
    Dann den Text reingeprummelt.
    chmod 755 ./dateivergl.sh
    ./dateivergl.sh

    und jetzt bekomm ich die Fehlermeldung:
    bash: ./dateivergl.sh bad interpreter: No such file or directory

    Hab ich irgendwas nicht installiert oder das script falsch aufgerufen oder stimmt was im script nicht?

  12. #12
    Registrierter Benutzer
    Registriert seit
    Dec 1999
    Beiträge
    562
    Ich kenne die Fehlermeldung nicht aber google hat folgendes ausgespuckt. Kann es sein das du dein Skript unter Windows erstellt hast?

    http://faq.adsl4linux.de/cache/53.html

    Windows und Unix/Linux verwenden in Textdateien unterschiedliche Steuersequenzen für den Zeilenumbruch. Daher wird ein unter Windows bearbeitetes oder abgespeichertes Skript unter Linux nicht funktionieren. Man kann jedoch die Zeilenumbrüche wieder zurück konvertieren. Dazu dient der Befehl:

    recode latin1/CR-LF..latin1 DATEINAME


    Oder aber man benutzt den VIM-Editor:

    vi DATEINAME
    :set fileformat=unix
    :wq!

  13. #13
    Registrierter Benutzer
    Registriert seit
    Aug 2002
    Beiträge
    452
    Du Hellseher hast mich durchschaut. hab das script per samba rübergeschoben.
    wenn ich das scrpit jetzt ausführe nimm es den dateinamen nur bis zu einem Leerzeichen. bekomme dann folgende Meldung:

    ls: blub: No such file or directory (is ja klar weil die Datei heiß ja z.B. 'blub bla laber.lol')
    diff: missing operand after 'blub'
    diff: try 'diff --help' for more information.
    ls: blub: No such file or directory
    ls: blub: No such file or directory

    hab mal bei diff --help nachgeschaut aber es liegt wohl eher am script (wie gesagt überhaupt keine Ahnung von) Aber thx für deine Mühe.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •