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

Linux Discussion :

Comparaison de deux fichiers et écriture du résultat dans un autre fichier


Sujet :

Linux

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Comparaison de deux fichiers et écriture du résultat dans un autre fichier
    Bonjour,

    j'ai passé toute la journée à chercher une solution dans les différents forum et sites pour le souci que j'ai mais en vain, alors j'ai décidé de poster ici pour demander de l'aide.

    je suis débutant dans la programmation shell ( j'ai commencé mes premiers lignes ce matin cela donne une idée ) et je dois faire un .sh qui permet de faire ceci:

    J'ai deux fichiers CSV A et B, je dois créer un fichier C qui comporte toutes les lignes du fichier A et qui n'existent pas dans le fichier B, puis faire l'inverse ça veut dire créer un fichier D contenant les lignes du fichier B et qui ne figurent pas dans le fichier A.

    Voici un exemple:

    fichier A:
    5
    2
    3
    6
    7
    1
    9
    10
    fichier B:
    9
    2
    4
    5
    1
    8
    7
    Résultat attendu:

    fichier C:
    3
    6
    10
    fichier D:
    4
    8
    J'ai essayé avec la commande diff avec différents options mais cela ne m'a pas permis d'avoir la différence entre les 2 fichiers et faut noter aussi que mes fichiers sont assez volumineux (>20Mo)

    Si quelqu'un pourrai m'aider je lui en serai reconnaissant

    Merci d'avance

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    !
    et puis pour savoir à quoi correspond -k
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    plus simple..

    man diff


    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #4
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Merci pour vos réponse j'ai essayé avec diff mais cette commande me donne comme résultat les modifications à faire pour avoir deux fichiers identique et non la différence entre les deux, j'ai cherché s'il existe une option de cette commande pour faire ceci mais je ne l'ai pas trouvé :s

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par theoutlaw1800 Voir le message
    Bonjour,
    Merci pour vos réponse j'ai essayé avec diff mais cette commande me donne comme résultat les modifications à faire pour avoir deux fichiers identique et non la différence entre les deux, j'ai cherché s'il existe une option de cette commande pour faire ceci mais je ne l'ai pas trouvé :s

    Faut regarder les liens, dans les man pages...


    man sdiff...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Points : 90
    Points
    90
    Par défaut problème de la différence entre listes
    J'ai eu récemment ce problème là. Je l'ai résolu de la manière suivante:

    D'abord préparer les fichiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat A | sort -u > A.tmp
    cat B | sort -u > B.tmp
    Comme ça on s'assure qu'il n'y a pas de lignes en double dans les fichiers qu'on va comparer (à cause du -u) et que le diff qui va suivre fonctionne correctement (les fichiers sont triés avec sort).

    Ensuite faire le diff entre les fichiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    diff A.tmp B.tmp | egrep "<|>" > AB.tmp
    Comme ça on va avoir dans le fichier AB.tmp les codes qui sont dans A et pas dans B précédés de "<", et les codes qui sont dans B et pas dans A précédés de ">". Il ne reste plus qu'à les extraire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat AB.tmp | grep "<" | cut -c 3- > C
    cat AB.tmp | grep ">" | cut -c 3- > D
    a+

  7. #7
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci à vous tous c'est fait

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/11/2012, 17h51
  2. Réponses: 2
    Dernier message: 04/09/2010, 17h30
  3. Réponses: 8
    Dernier message: 28/04/2008, 13h28
  4. Réponses: 1
    Dernier message: 20/08/2007, 10h25
  5. [DOM] importer un noeud d'un fichier xml et le coller dans un autre fichier
    Par iznogoud36 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/06/2006, 12h55

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