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 :

Script de comparaison 2 fichiers


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut Script de comparaison 2 fichiers
    Bonjour a tous,

    j'aimerais comparer deux fichier texte et connaitre en sortie:

    - les lignes ajoutées
    - les lignes qui ont disparu

    Exemple:

    fichier1:
    toto
    tata
    titi

    fichier2:
    tutu
    tata
    tyty

    le résultat serait, apres la comparaison du fichier2 par rapport au fichier1:

    ajoutés: tutu, tyty
    supprimé: tyty

    est-ce que je peux faire cela via une commande linux (diff ou autres) ou par un script php par exemple ?

    Merci de votre aide.

  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
    avec diff tu peux voir chaque ligne differente de fic1/fic2 mais il faut ajouter des tests suplémentaire pour completer ou formatter le tri

    genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    diff fic fic2 > liste_difs
    for i in `cat list_difs` ; do ................... ; done

  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
    Par défaut
    Bonjour,

    Pour avoir un résultat en colonne comme tu le veux, je conseil :

    diff --side-by-side fichier1 fichier2
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    diff ne compare que les lignes triées. sinon il faut faire un sort avant


    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
     
    $ head -1000 f1 f2
    ==> f1 <==
    toto
    titi
    tata
    tonton
    toutou
     
    ==> f2 <==
    toutou
    tutu
    tata
    tyty
    tintin
    $ sort f1 > f1s
    $ sort f2 > f2s
    $ diff f1s f2s|awk '/^>/{$1="";A=A""V$0;V=","}/^</{$1="";S=S""W$0;W=","}END{print "ajoutes:"A;print "supprimes:"S}' 
    ajoutes: tintin, tutu, tyty
    supprimes: titi, tonton, toto

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    je veux dire qu'avec des lignes non-triées, tu pourras avoir des éléments ajoutés et supprimés

    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
     
    $ head f1 f2
    ==> f1 <==
    titi
    tata
     
    ==> f2 <==
    tata
    titi
     
    $ diff --side-by-side f1 f2
    titi                                                          <
    tata                                                            tata
                                                                  > titi
    $ diff f1 f2
    1d0
    < titi
    2a2
    > titi

Discussions similaires

  1. Script de comparaison de SHA256 avec un fichier
    Par villegente dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 17/09/2012, 20h00
  2. help script perl comparaison de deux fichiers
    Par nosuperman dans le forum Langage
    Réponses: 51
    Dernier message: 21/03/2012, 09h11
  3. script de comparaison de fichiers
    Par olemoine dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2008, 11h12
  4. script : comparaison de fichiers Excel
    Par M@XflY dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 10/01/2007, 15h15
  5. Comparaison de fichier
    Par danzerg dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2003, 11h49

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