Utilisation de fonction DIFF

myspace302 -  
dubcek Messages postés 18789 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
A voir également:

2 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
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
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
$ diff <(sed 's+../../..++' fichier1) <(sed 's+../../..++' fichier2)
5c5
< C03 personne PPDA consomme 39 unites
---
> C03 personne PPDA
$ 
0