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 :

difference entre 2 fichiers


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Par défaut difference entre 2 fichiers
    Bonjour,

    j'ai deux fichiers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fichier1:
       1. pomme
       2. poire
       3. banane
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fichier2:
       1. banane
       2. ananas
       3. pomme
    J'ai besoin de récupérer dans un fichier résultat, ce qu'il y a dans le fichier1 et pas dans le fichier 2 soit:

    Depuis ce matin, j'essaye des commandes unix mais je n'ai toujours pas de solution.

    Merci de votre aide

  2. #2
    Membre expérimenté Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Par défaut
    faire 'man diff' pour les options

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Par défaut
    La fonction diff n'est pas la solution

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 850
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sebastien00 Voir le message
    Bonjour,

    j'ai deux fichiers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fichier1:
       1. pomme
       2. poire
       3. banane
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fichier2:
       1. banane
       2. ananas
       3. pomme
    J'ai besoin de récupérer dans un fichier résultat, ce qu'il y a dans le fichier1 et pas dans le fichier 2 soit:

    Solution Bourne Shell
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/sh
    cat fichier1 |while read fruit
    do
        grep "$fruit" fichier2 1>/dev/null || echo "$fruit"
    done
    Solution Python (à privilégier si les fichiers sont de grande taille)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/env python
    # coding: Latin-1 -*-
     
    tabFruit=[]
    fp=open("fichier2", "r")
    for fruit in fp:
        tabFruit.append(fruit)
    fp.close()
    tabFruit.sort()      # Pas certain que ce soit utile donc à vérifier
     
    fp=open("fichier1", "r")
    for fruit in fp:
        if fruit not in tabFruit: print fruit
    fp.close()
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre confirmé
    Profil pro
    ingénieur
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Par défaut
    Salut, je te propose cette solution pour ton problème :

    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
    #!/bin/bash
    #On concatene fic1 et fic2 pour travailler sur un ensemble.
    cat fic1 fic2 > fic3
     
    #On retire les doublons de fic3 et on le trie par ordre alphabetique en passant.
    cat fic3 | awk '{print $2}' | sort -d | uniq -u | tee fic3 1>/dev/null
     
    #On boucle pour tester l'existence de chaque ligne sur fic2 (en testant le code retour).
    for i in `cat fic3 | awk '{print $0}'`
    do
    grep $i fic2 1>/dev/null
    if [ $? -eq 0 ]
     then
     
    #Si il existe sur fic 2 on le retire de la liste.
    sed -i "/$i/d" fic3
    fi
    done
     
    #On reinitialise le fichier final.
    rm fic4
     
    #On enumere chaque ligne afin d'avoir ce format n.xxx
    echo  "`grep -n "^[Aa-Zz]*" fic3`" > fic3
     
    #Pour chaque ligne lue on le transforme en format n. xxx que l'on envoie vers le fichier final.
    cat fic3 | while read ligne
    do echo $ligne | awk '{print substr($0,1,1)"." " "substr($0,3)}' >> fic4
    done
    cela donne le résultat pour ce que tu veux faire, peut-être que l'on peut l'optimiser plus ?

    Dis moi si ça marche chez toi ?

Discussions similaires

  1. difference entre deux fichiers data
    Par feynman dans le forum Fortran
    Réponses: 8
    Dernier message: 20/04/2010, 14h51
  2. Réponses: 20
    Dernier message: 07/08/2007, 14h59
  3. difference entre 2 codes pour lire un fichier svp.
    Par Slumpy dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/05/2007, 10h11
  4. [VB 6] Difference entre write et print - fichiers
    Par Chocapic dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/06/2006, 16h03
  5. [EXCEL] difference entre deux fichiers
    Par Mokhtar BEN MESSAOUD dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/01/2006, 11h12

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