Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
595 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  compter le nombre de différences de deux fichiers (diff...)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

compter le nombre de différences de deux fichiers (diff...)

n°1719180
dams78
développateur
Posté le 17-04-2008 à 13:14:14  profilanswer
 

bonjour,
j'ai deux répertoires contenant plusieurs fichiers le tout assez long
je voudrai connaître le nombre de différences entre les deux répertoires
 
j'utilise par la suite la commande diff pour avoir un aperçu des différences, j'avais donc pensé compter le nombre de lignes renvoyées par le diff
mais, diff renvois desfois fois deux lignes pour une différence et desfois trois, donc ce n'est pas possible...
 
merci de votre aide


---------------
dam's (debianer), ma galerie Flickr
mood
Publicité
Posté le 17-04-2008 à 13:14:14  profilanswer
 

n°1719279
aigles
Posté le 17-04-2008 à 16:15:40  profilanswer
 

Une solution est peut être d'utiliser l'option -C de la commande diff.
Avec cette option chaque bloc de différences est précédé d'une ligne de douze * :
 
$ cat a1
Added line in Location 1
This is a test Script
But i am stuck.Please help
This is Added line to LOCATION 1(/root/testfolder/a)
$ cat a2
Added Line in the Location 2 (/tmp/testfolder/a)
Another line 2
This is a test Script
But i am stuck.Please help
This is added line for testing in LOCATION 2(/tmp/testfolder/a)
$ diff -C 0 a1 a2
*** a1  Wed Apr 16 14:36:41 2008
--- a2  Thu Apr 17 16:04:56 2008
***************
*** 1 ****
! Added line in Location 1
--- 1,2 ----
! Added Line in the Location 2 (/tmp/testfolder/a)
! Another line 2
***************
*** 4 ****
! This is Added line to LOCATION 1(/root/testfolder/a)
--- 5 ----
! This is added line for testing in LOCATION 2(/tmp/testfolder/a)
$ diff -C 0 a1 a2 | grep -c '^************$'
2
$
 
 
Jean-Pierre.

n°1719647
dams78
développateur
Posté le 18-04-2008 à 10:05:43  profilanswer
 

Code :
  1. #/bin/sh
  2. #premiere parametre : dossier a comparer 1
  3. #deuxieme parametre : dossier a comparer 2
  4. difference="0"
  5. diff $1 $2 | (while read LINE
  6. do
  7. if [ "${LINE:0:1}" == "<" ] || [ "${LINE:0:1}" == ">" ]
  8. then
  9.  difference=$(($difference + 1))
  10. fi
  11. done
  12. echo $difference
  13. )


 
voila ce que je fais, ça ne marche pas à tout les coups quand je modifis les fichiers (genre ya une erreure de +/- 1) mais j'ai l'impression que c'est plus fiable que de compter les étoiles
enfin il faudrai certainement faire des tests plus poussés mais bon je vais voire si je trouve autre chose ou si cela me suffit
merci


Message édité par dams78 le 18-04-2008 à 10:05:59

---------------
dam's (debianer), ma galerie Flickr
n°1720030
aigles
Posté le 18-04-2008 à 17:32:08  profilanswer
 

Tu peux faire plus simple :

Code :
  1. #/bin/sh
  2. #premiere parametre : dossier a comparer 1
  3. #deuxieme parametre : dossier a comparer 2
  4. difference=$(diff $1 $2 | grep -c '[<>]')
  5. echo $difference


 
Jean-Pierre

n°1720108
dams78
développateur
Posté le 18-04-2008 à 20:10:42  profilanswer
 

pas mal ;)
merci


---------------
dam's (debianer), ma galerie Flickr

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  compter le nombre de différences de deux fichiers (diff...)

 

Sujets relatifs
[Résolu]java.util.zip ne pas avoir le chemin des fichiersinsérer des lignes dans des fichiers
Ajouter un nombre dans tous les champsRécupération de fichiers
utilisation de nombre entier tres grand!JAVA Ne pas afficher le E sur les nombres dit scientific
fonction pour lister les fichiers d'un repertoireGénérer des fichiers Excel en PHP sur un serveur Linux
Récupérer le nombre de caractère d'un texte ?[Javascript] héritage entre classe dans des fichiers différents
Plus de sujets relatifs à : compter le nombre de différences de deux fichiers (diff...)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR