Utilisation de fonction DIFF

Fermé
myspace302 - 2 mai 2012 à 15:29
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 - 3 mai 2012 à 10:44
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

mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 7 803
3 mai 2012 à 00:54
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
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 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
3 mai 2012 à 10:44
hello
$ diff <(sed 's+../../..++' fichier1) <(sed 's+../../..++' fichier2)
5c5
< C03 personne PPDA consomme 39 unites
---
> C03 personne PPDA
$ 
0