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

Shell et commandes GNU Discussion :

Comparer le contenu d'une liste de fichiers


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Par défaut Comparer le contenu d'une liste de fichiers
    Salut,

    Je me confronte à une demande spécifique à quoi je ne trouve pas une piste; en gros j'ai un:

    ---rep1
    -fichier1
    -fichier2
    -.....
    -fichier n
    Sous ce répertoire je doit comparer le contenu des fichiers (fichier1....fichier n)
    les commande diff, cmp..ne m'aident pas trop car ils ne prennent pas plus que deux fichiers.
    Quelqu'un a t-il une piste SVP ?

    Merci,

  2. #2
    Expert confirmé 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 : 48
    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
    Par défaut
    quand tu as plusieurs fichiers à comparer, il n'y a qu'une façon de faire, il faut définir un référent et comparer tout le reste unité/unité au référent.

    ça s'applique aussi pour les fichiers .... tu vas donc devoir faire une boucle ou mieux un script qui mettra en prime les résultats en forme.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Par défaut
    Salut,
    Désolé pour le retard.
    Je crois que je ne me suis pas bien expliqué.
    Mon problème est que ce répertoire contient une liste de fichiers d'un projet; donc pas forcément qu'il y a un référent pour procéder à la comparaison.

    Merci et désolé pour le manque de clarté.

  4. #4
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Ca n'est toujours pas clair.

    j'ai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DOSSIER
    ├───Fichier1
    ├───Fichier2
    ├───Fichier3
    └───Fichier4
    Quel fichier veux-tu comparer à quel fichier ? Une comparaison ne peut se faire que entre deux fichiers (tout comme tu ne peux comparer que deux nombres ).

  5. #5
    Expert confirmé 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 : 48
    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
    Par défaut
    il veut comparer les 4 ou n fichiers ce qui implique d'en choisir un référent et de boucler pour comparer chaque autre fichier à ce référent.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in fichier[2-5] ; do diff fichier1 $i ; done
    par exemple ici fichier1 est le referent et il y a 5 fichiers en tout

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 666
    Par défaut
    Citation Envoyé par frp31
    il veut comparer les 4 ou n fichiers ce qui implique d'en choisir un référent
    pas nécessairement...

    Code bash4 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    declare -A aArr
    for file in ./fichier*
    do somme=$(md5sum "$file")
       somme=${somme%% *}
       aArr[${somme}]+="$file;"
    done
     
    for item in "${!aArr[@]}"
    do echo "groupe $((++n))"
       IFS=';' read -a files <<< "${aArr[$item]}"
       printf '\t%s\n' "${files[@]}"
    done
    un fichier contient "abcd", les autres "abc" :
    Code résultat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    groupe 1
    	./fichier_c
    groupe 2
    	./fichier_a
    	./fichier_b
    	./fichier_d
    	./fichier_e
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mettre le contenu d'une liste dans un fichier EXCEL
    Par john_wili dans le forum Jasper
    Réponses: 1
    Dernier message: 13/01/2009, 11h22
  2. Comparer le contenu d'une table avec un fichier csv
    Par cdo22 dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/11/2008, 18h35
  3. importer le contenu d'une list vers un fichier Excel
    Par john_wili dans le forum Documents
    Réponses: 4
    Dernier message: 22/10/2008, 23h41
  4. Réponses: 2
    Dernier message: 17/10/2007, 16h15
  5. Ecrire le contenu d'une List dans un fichier
    Par sabure dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 11/05/2006, 16h33

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