Forum Programmation.shell comparer 2 fichiers sans fusion

Posté par  .
Étiquettes : aucune
0
20
oct.
2007
Bonjour,

je souhaite comparer 2 fichiers juste pour savoir s'ils sont identiques ou pas, je ne veux pas les fusionner.
S'ils sont identiques je supprime le + récent et s'ils sont différents je supprime l'ancien.

j'ai fait ça, mais ça ne fonctionne pas car il s'attend à des chiffres je pense
comp=`diff -s passe.html actuel.html`
ident="Files passe.html and actuel.html are identical"
wget http://127.0.0.1/catcher/example3.php -O /var/www/catcher/actuel.html
while [ "$comp" -ne "ident" ] ; do
...


l'erreur est "integer expression expected"

Merci de votre aide.
  • # cmp

    Posté par  . Évalué à 3.

    apparemment cmp permet de comparer 2 fichiers binaires

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # mauvais opérateur

    Posté par  . Évalué à 1.

    > l'erreur est "integer expression expected"

    -ne est un opérateur arithmétique, et "ident" n'est pas un nombre.
    Si tu veux comparer deux cahînes de caractères, il faut utiliser == (ou simplement = si tu veux être POSIX compliant).
    • [^] # Re: mauvais opérateur

      Posté par  . Évalué à 1.

      c'est bien ce que je pensais.

      Je me suis trompé, je voulais mettre $ident et pas juste ident.

      sinon, j'en fais quoi de =. Je ne sais pas comment l'utiliser...?
  • # Cmp

    Posté par  . Évalué à 4.

    je souhaite comparer 2 fichiers juste pour savoir s'ils sont identiques ou pas, je ne veux pas les fusionner.
    S'ils sont identiques je supprime le + récent et s'ils sont différents je supprime l'ancien.


    Donc tu peux aussi bien supprimer l'ancien à tous les coups, puisque dans le premier cas, il s'agit d'une même fichier (sauf si les noms ont de l'importance).

    Sinon,

    if cmp -s $old $new ; then rm -f $new ; else rm -f $old ; fi

    Ça marche bien, aussi.
    • [^] # Re: Cmp

      Posté par  . Évalué à 2.

      Autre solution, calculer la somme MD5 de chaque fichier avec md5sum pour savoir s'ils sont identiques ou non
      • [^] # Re: Cmp

        Posté par  . Évalué à 2.

        Oui, mais ça peut-être long, et en tout cas, ça le sera toujours, en soi, plus qu'un simple cmp. Le calcul de hash n'est intéressant que si on les stocke et que l'on s'y réfère plusieurs fois par la suite ...
    • [^] # Re: Cmp

      Posté par  . Évalué à 1.

      Merci super, j'ai réussi avec cmp.

      Pour info, == ça veut dire n'est pas égal ou égal ?


      Merci à tous.
      • [^] # Re: Cmp

        Posté par  . Évalué à 2.

        == égal
        != différent

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.