Utilisation de la commande diff

albert40 Messages postés 56 Statut Membre -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bon voilà je veux écrire un script qui lance un signal sonore si deux fichiers textes sont différents. Après une petite recherche je me suis aperçue que la commande diff permet de comparer deux fichiers ligne par ligne.
Je me demande donc si c'est possible d'utiliser cette commande dans mon script.
Merci pour vos réponses

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Avant toutes choses, man diff ;-))

    Sinon, la commande diff sans paramètre ne renvoie rien si 2 fichiers sont identiques avec un code retour ($?) de "0", et renvoie les différences si elles existent avec un code retour ($?) de "1". A partir de là il est très facile de tester ce code retour et de lancer un bip sonore en cas d'inégalité...
    0
  2. albert40 Messages postés 56 Statut Membre
     
    Bonjour
    oui effectivement c'est ce que j'ai remarqué quand j'ai fait le test de la valeur de ($?)
    J'ai quand même deux questions :
    est ce que c'est possbile d'utiliser la fonction diff pour afficher les lignes où il y a des différences entre les deux fichiers ??
    comment faire pour "programmer" le bip sonore (une commande particulière ...)
    Merci pour votre aide
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      est ce que c'est possbile d'utiliser la fonction diff pour afficher les lignes où il y a des différences entre les deux fichiers ??
      $ cat A
      un
      deux
      trois
      quatre
      cinq
      $ cat C
      un
      deux
      troi
      quatre
      cinq
      $ diff A C
      3c3
      < trois
      ---
      > troi
      $


      comment faire pour "programmer" le bip sonore (une commande particulière ...)
      Si un bip sonore te suffit, un simple echo -e "\a" devrait suffire, sinon tu peux lire un fichier "wav" (ou autre) avec "play" ou "aplay"...
      0
    2. albert40 Messages postés 56 Statut Membre
       
      Merci pour la réponse :)
      Toutefois j'avoue que j'ai un problème au niveau de la comparaison. Voilà le résultat que me sort la commande diff :(
      2,19c2,19
      < Remote control interface initialized. Type 'help' for help.
      < > > +----[ Stream 0 ]
      < |
      < | Codec: H264 - MPEG-4 AVC (part 10) (avc1)
      < | Type: Video
      < | Frame rate: 25
      < | Resolution: 640x480
      < |
      < +----[ Stream 1 ]
      < |
      < | Sample rate: 44100 Hz
      < | Type: Audio
      < | Codec: MPEG AAC Audio (mp4a)
      < | Channels: Stereo
      < |
      < +----[ end of stream info ]
      < > Shutting down.Bye-bye!
      < > 
      \ No newline at end of file
      ---
      > Remote control interface initialized. Type 'help' for help.
      > > > +----[ Stream 0 ]
      > |
      > | Codec: H264 - MPEG-4 AVC (part 10) (avc1)
      > | Type: Video
      > | Frame rate: 25
      > | Resolution: 640x480
      > |
      > +----[ Stream 1 ]
      > |
      > | Sample rate: 44100 Hz
      > | Type: Audio
      > | Codec: MPEG AAC Audio (mp4a)
      > | Channels: Stereo
      > |
      > +----[ end of stream info ]
      > > Shutting down.Bye-bye!
      > > 
      

      Personnellement je ne vois pas où est le problème dans mes deux fichiers qui semblent authentiques. Si vous pouvez m'aider pour comprendre cette sortie
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Affiches la sortie de :
      cat -A fichier1
      cat -A fichier2
      0
    4. albert40 Messages postés 56 Statut Membre
       
      alors là j'avoue que c'est un peu bizarre :s
      Quand j'ouvre le fichier output avec un éditeur de fichier voilà ce qu'il m'affiche :
      VLC media player 1.1.4 The Luggage
      Remote control interface initialized. Type 'help' for help.

      > > +----[ Stream 0 ]

      |

      | Codec: H264 - MPEG-4 AVC (part 10) (avc1)

      | Type: Video

      | Frame rate: 25

      | Resolution: 640x480

      |

      +----[ Stream 1 ]

      |

      | Sample rate: 44100 Hz

      | Type: Audio

      | Codec: MPEG AAC Audio (mp4a)

      | Channels: Stereo

      |

      +----[ end of stream info ]

      > Shutting down.Bye-bye!

      >




      Maintenant quand je fais la commande que tu m'as donnée :
      voilà ce qu'il m'affiche :

      VLC media player 1.1.4 The Luggage$ 
      Remote control interface initialized. Type 'help' for help.^M$ 
      > > Shutting down.Bye-bye!^M$ 
      

      Là j'avoue que je n'y comprends rien, surtout que j'ai actualisé l'affichage de l'éditeur du texte

      Edit: Pour le fichier test voilà la sortie que je reçois :
      Remote control interface initialized. Type 'help' for help.$
      > > +----[ Stream 0 ]$
      |$
      | Codec: H264 - MPEG-4 AVC (part 10) (avc1)$
      | Type: Video$
      | Frame rate: 25$
      | Resolution: 640x480$
      |$
      +----[ Stream 1 ]$
      |$
      | Sample rate: 44100 Hz$
      | Type: Audio$
      | Codec: MPEG AAC Audio (mp4a)$
      | Channels: Stereo$
      |$
      +----[ end of stream info ]$
      > Shutting down.Bye-bye!$
      > fdf$
      

      Et ce que m'affiche l'éditeur de texte :
      VLC media player 1.1.4 The Luggage
      Remote control interface initialized. Type 'help' for help.
      > > +----[ Stream 0 ]
      |
      | Codec: H264 - MPEG-4 AVC (part 10) (avc1)
      | Type: Video
      | Frame rate: 25
      | Resolution: 640x480
      |
      +----[ Stream 1 ]
      |
      | Sample rate: 44100 Hz
      | Type: Audio
      | Codec: MPEG AAC Audio (mp4a)
      | Channels: Stereo
      |
      +----[ end of stream info ]
      > Shutting down.Bye-bye!
      >
      (il y a pa de fdf à la fin)
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Je t'ai demandé pour les 2 fichiers ;-((

      VLC media player 1.1.4 The Luggage$
      Remote control interface initialized. Type 'help' for help.^M$
      > > Shutting down.Bye-bye!^M$

      le "$" (signe dollar) seul à la fin c'est la marque de fin de ligne sous Unix (\n), par contre un "^M$" c'est la marque d'un retour chariot suivi d'une fin de ligne (\r\n) que l'on trouve sous Windows ;-(

      D'où ma demande concernant les 2 fichiers ;-\

      Est-ce que ces 2 fichiers proviennent du même endroit (PC) ?
      0