Utilisation de fonction DIFF

myspace302 -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour je dois rédiger un code shell où je dois comparer deux fichiers ligne par ligne
mais en ignorant certains champs des lignes
Par exemple dans mon fichier si j'ai
Nom:Prenom:date:adresse

je ne dois comparer que les champs Nom,Prenom et adresse et ignorer le champs contenant la date
J'ai utilisé la commande diff mais je n'arrive pas à faire le filtre

Merci d'avance

2 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Tu peux par exemple utiliser au préalable la commande cut pour filtrer les colonnes qui ne t'intéressent pas.

    Exemple : ici seules les colonnes 1,3,4 t'intéressent, donc :

    cut -d":" -f1,3,4 fichier1a.txt > fichier1b.txt
    cut -d":" -f1,3,4 fichier2a.txt > fichier2b.txt
    diff fichier1b.txt fichier2b.txt


    Bonne chance
    0
    1. myspace302
       
      Merci pour ta réponse je vais tester ta méthode
      Par contre j'ai une autre question
      Je dois coomparer les bloc de deux fichiers mais les colonnes sont un peu mélangés
      Je veux les comparer ligne par ligne et colonne par colonne mais en ne tenant pas compte des dates
      Par exemple:


      Fichier 1

      A01 personne Claire Chazal 24/01/12 consomme 6 unites
      B01 personne Claire Chazal consomme 19 unites
      C01 personne Mireille Dumas consomme 27 unites
      A21 personne 24/01/12 consomme 51 unites
      C03 personne PPDA consomme 39 unites


      Fichier 2

      A01 personne Claire Chazal 30/01/12 consomme 6 unites
      B01 personne Claire Chazal consomme 19 unites
      C01 personne Mireille Dumas consomme 27 unites
      A21 personne 30/01/12 consomme 51 unites
      C03 personne PPDA

      Je veux comparer ces deux fichiers sans les dates (par exemple ignorer la date de la ligne A01 et A21)

      Je voulais utiliser le cut mais j'aurai un probleme avec les espaces entre les champs
      Merci d'avance
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    $ diff <(sed 's+../../..++' fichier1) <(sed 's+../../..++' fichier2)
    5c5
    < C03 personne PPDA consomme 39 unites
    ---
    > C03 personne PPDA
    $ 
    0