IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unix Discussion :

Comparaison et diff de répertoires


Sujet :

Unix

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 35
    Points : 31
    Points
    31
    Par défaut Comparaison et diff de répertoires
    Bonjour tout le monde.
    Débutant en script, je cherche à automatiser une petite tache.

    J'ai deux répertoires au même niveau.
    Je voudrais comparer le contenu de ces deux dernier.

    Dans un premier temps, je voudrais vérifier que les fichiers qui sont dans le rep1 existe bien dans le rep2. Sinon, faudrait logger la différence dans un fichier.
    Dans un second temps, pour les fichiers qui exsitent dans rep1 et rep2, effectuer un diff et générer un fichier de diff par par fichier.

    Merci d'avance de vos retour et suggestions.

    Bonne journée à tous

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    il va falloit faire une petite procédure pour ça


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in <repertoire_modele>/* ; do echo "==== $i ====" ;  if [ -f <repertoire_a_verifier>/$(basename $i) ] ; then diff $i <repertoire_a_verifier>/$(basename $i) ; else echo <repertoire_a_verifier>/$(basename $i)" n'existe pas "; fi ; done  >  fichier_de_resultat

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    francois@trillian:/tmp$ mkdir aa ; mkdir bb
    francois@trillian:/tmp$ echo totoutu > bb/a
    totoutu
    francois@trillian:/tmp$ echo tutu > bb/b
    tutu
    francois@trillian:/tmp$ echo toto > aa/a
    toto
    francois@trillian:/tmp$ echo toto > aa/c
     
     
    francois@trillian:/tmp$ ls -lrt aa/ bb/
    bb/:
    total 8
    -rw------- 1 francois francois 5 24 mars  07:11 b
    -rw------- 1 francois francois 8 24 mars  07:12 a
     
    aa/:
    total 8
    -rw------- 1 francois francois 5 24 mars  07:06 a
    -rw------- 1 francois francois 5 24 mars  07:17 c
    francois@trillian:/tmp$ 
    francois@trillian:/tmp$ for i in aa/* ; do if [ -f bb/$(basename $i) ] ; then diff $i bb/$(basename $i) ; else echo bb/$(basename $i)" n'existe pas"; fi ; done
    1c1
    < toto
    ---
    > totoutu
    bb/c n'existe pas
    francois@trillian:/tmp$ rm -rf aa/ ; rm -rf bb/
    comme ça tu compares les fichier qui ont le même nom dans aa/ et dans bb/
    si un fichier dans aa/ n'existe pas dans bb/ ça l'indique aussi

    le reste à faire c'est que de la mise en page pour rendre le fichier resultat lisible même si il y a 100 fichiers à traiter.

  3. #3
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    La plupart des versions de diff que je connais fonctionnent tres bien sur des repertoires, et te listent dans ce cas les fichiers presents uniquement dans l'un des repertoires.

    N'est-ce pas le cas chez toi ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  4. #4
    Membre habitué
    Homme Profil pro
    consultant ETL
    Inscrit en
    Septembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : consultant ETL
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2008
    Messages : 97
    Points : 185
    Points
    185
    Par défaut
    aas tu testé si la commande dircmp ne repondrait pas a une partie de tes besoins?

Discussions similaires

  1. Comparaison de contenu XML et de contenu de répertoire
    Par GGE31 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 11/06/2014, 16h52
  2. Comparaison nom de répertoire et date
    Par Senninp dans le forum Shell et commandes GNU
    Réponses: 19
    Dernier message: 14/05/2014, 11h04
  3. Réponses: 4
    Dernier message: 12/10/2012, 13h46
  4. Comparaison entre 2 champs de 2 tables diff.
    Par Thalys dans le forum Langage SQL
    Réponses: 11
    Dernier message: 07/11/2008, 13h53
  5. Comparaison de fichiers au sein de 2 répertoires distincts
    Par duboisfa dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 16/03/2006, 10h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo