Comparaison de deux fichiers

Comparaison de deux fichiers - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 05-07-2008 à 21:15:00    

Bonjour à toutes et à tous :hello:  
 
J'ai deux fichiers "1.txt" et "2.txt".
1.txt contient :
a
b
c
d
e
 
et 2.txt contient :
a
z
c
y
e
 
Je souhaite faire la chose suivante :
Identifier les lignes différentes, et pour chacune de ces lignes récupérer les couples de lignes comparées.
Pour l'exemple précédent, j'aurais souhaiter avoir :
 
b z
d y
 
Avez-vous une idée du script que je peux utiliser ? La commande diff ne pouvant pas récupérer le couple à ma connaissance...
 
Merci.

Reply

Marsh Posté le 05-07-2008 à 21:15:00   

Reply

Marsh Posté le 06-07-2008 à 01:22:55    

Ca doit pouvoir se faire en trois lignes avec awk.

 

Edit: je suis fatigué ce soir, l'artillerie lourde ca rassure tout le temps... Va voir du coté de cmp(1).

 

J'avais pas vu que tu voulais afficher le couple des deux. Amha, tu risques de peiner de faire ca avec comm(1) ou join(1), il te reste plus que awk.

 

Je ferais comme ca:
- paste pour faire fusionner les deux fichiers ligne à ligne
- awk pour comparer $1 et $2. S'ils sont différents, les afficher.

 

Voila:

 

# paste 1.test 2.test | awk '$1 != $2 {print}'

 

Edit2: même pas en trois lignes, 1 suffit en fait [:ddr555] . Très fatigué je suis... A adapter ensuite à tes besoins, voila.

 

Edit3: je me [:gratgrat] , je pense qu'avec diff la chose doit être possible, mais ca dépend des implémentations. Voir diff -y, --suppress-common-lines, etc.


Message édité par Gf4x3443 le 06-07-2008 à 01:43:55
Reply

Marsh Posté le 06-07-2008 à 11:38:08    

Olala j'y avais même pas pensé...  Un grand MERCI à toi Gf4x3443 ! :D  
 :hello:  

Reply

Marsh Posté le 10-07-2008 à 13:29:50    

sdiff

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed