Utilisation de la commande diff

albert40 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 36402 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

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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
albert40 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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
albert40 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Affiches la sortie de :
cat -A fichier1
cat -A fichier2
0
albert40 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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