Page 1 sur 2

[diff] comparer 2 fichiers

Publié : mer. 17 sept. 2008, 09:35
par djaac
Bonjour,

j'ai 2 fichiers composés de nom,
j'aimerais comparer ces 2 fichiers, connaitre les différences "les noms en trop comparer à l'autre fichiers".
avez vous une solution, j'ai deja essayé "diff" mais j'ai peur qu'il compare ligne par ligne car les noms sont mélangés, c'est à dire :

fichier 1 fichier 2
toto tata
tata popo
titi titi

merci d'avance

Publié : mer. 17 sept. 2008, 10:17
par chipster
Le topic ^^ :merci:

comparer 2 fichiers

Publié : mer. 17 sept. 2008, 10:38
par djaac
je dois le prendre comment ?

Publié : mer. 17 sept. 2008, 11:21
par vincentxavier
Je te suggère de jeter un œil sur http://www.linux-france.org/article/deb ... linux.html

TU peux commencer par trier tes fichiers aussi !

Publié : mer. 17 sept. 2008, 11:31
par djaac
ok,
ça m'aide pas à grand chose, mais bon j'ai compris !
merci pour votre collaboration.

Publié : mer. 17 sept. 2008, 11:45
par vincentxavier
Tu peux aussi lire http://www.siteduzero.com/tutoriel-3-56 ... nnees.html

Compte-tenu du peu d'information que tu nous donnes sur ce que tu veux faire, on voit pas forcément comment t'aider. Tu n'est d'ailleurs pas obligé de comparer les fichier directement, mais tu peux comparer des copies. Enfin, bref, passons !

En ce qui concerne le sujet du fil de messages, il aurait été sympa que tu le mettes sous la forme [SUJET] Question (État) en n'indiquant État que si c'est résolu !

Publié : mer. 17 sept. 2008, 11:52
par youshe
chipster a écrit :Le topic ^^ :merci:
Cela veut simplement dire que la section du forum est dédiée à l'installation et à la configuration d'archlinux et/ou que le topic du post n'est pas convenable :).
En ce qui concerne les fichiers, il est effectivement fort possible que diff renvoie quelque chose de pas très en accord avec ce qui est recherché dans ce cas là. Une solution serait peut être de faire un tri préalable ? (cf. sort et sed par exemple)
Voir un ptit script bash/python/perl ou ruby si tu le veux vraiment ?

Fred

comparer 2 fichiers

Publié : mer. 17 sept. 2008, 14:23
par djaac
désolé,

uniq est pas mal mais comparer 2 fichiers devient compliquer pour lui.Pour faire simple dans mon explication :
-j'ai 2 fichiers differents avec des noms de machines à l'interieur
-je veux extraire les doublons pour ces 2 fichiers

si doublons, machine existante sinon inexistante

merci

Publié : mer. 17 sept. 2008, 14:27
par marc[i1]
Salut,

de ce que tu décris, le duo diff + sed me semble le plus évident.

exemple :
diff sur deux fichiers
sed pour trouver un paramètre "machine"
si présent : ok
si pas présent : pas ok

Publié : mer. 17 sept. 2008, 14:36
par djaac
merci,
par contre j'ai identifié 350 machines par fichiers...

Publié : mer. 17 sept. 2008, 14:37
par youshe
Sinon une solution un peu barbare pourrait être :
cat f1 | sort > f1.bis
cat f2 | sort > f2.bis
diff *.bis
Toutes les machines précédées par + et - sont à éliminer. Il doit être possible de faire plus simple avec sed comme dit plus haut mais je ne maîtrise pas du tout :)

Fred

Publié : mer. 17 sept. 2008, 14:40
par djaac
quand tu dis éliminer,
c'est à dire qu'elles n'existent pas dans les deux fichiers

(car la condition, c'est de faire ressortir les machines du fichier1 qui n'existent pas dans le fichier2)

Re: comparer 2 fichiers

Publié : mer. 17 sept. 2008, 14:43
par vincentxavier
djaac a écrit :désolé,

uniq est pas mal mais comparer 2 fichiers devient compliquer pour lui.Pour faire simple dans mon explication :
-j'ai 2 fichiers differents avec des noms de machines à l'interieur
-je veux extraire les doublons pour ces 2 fichiers

si doublons, machine existante sinon inexistante

merci
Tu concatènes tes deux fichiers, puis tu appliques un uniq dessus qui te donnera la liste des doublons (donc des machines existantes).
Si ton fichier contient d'autres informations, tu peux utiliser cut ou awk pour te débarrasser des informations "inutiles" dans les fichiers de départ :

Code : Tout sélectionner

awk -F ' ' '{print $1}' fichier > fichier_machine

Publié : mer. 17 sept. 2008, 14:45
par vincentxavier
youshe a écrit :Sinon une solution un peu barbare pourrait être :

Code : Tout sélectionner

cat f1 | sort > f1.bis
cat f2 | sort > f2.bis
diff *.bis
Fred
Ahhhhhhhhh, encore du UUOC (Useless Use Of Cat) ! Je signale que

Code : Tout sélectionner

sort f1 -o f1.sort
est tout aussi élégant, efficace et bien plus portable !

Publié : mer. 17 sept. 2008, 15:02
par djaac
je veux faire ressortir les machines du fichier1 qui n'existent pas dans le fichiers2

Publié : mer. 17 sept. 2008, 18:45
par vincentxavier
Dans ce cas, tu tries tes fichiers, tu retires les doublons, et tu fais un diff entre les deux.

Regarde un peu la page de diff, tu y verras comment n'y faire apparaitre que certaines informations.

Publié : mer. 17 sept. 2008, 19:19
par wain
Je pense que le meilleur outil reste "comm" qui permet de comparer deux fichiers et de sortir les lignes communes ou encore les doublons selon les options 8)

Code : Tout sélectionner

comm --help
Usage: comm [OPTION]... FICHIER1  FICHIER2
Comparer les fichiers triés GAUCHE et DROITE ligne par ligne.

Sans option, la sortie se fait sur 3 colonnes.  La première colonne contient
les lignes uniques au FICHIER1, la seconde contient les lignes uniques au FICHIER2,
et la troisième contient les lignes communes aux deux fichiers.

  -1              supprimer les lignes uniques du fichier de gauche
  -2              supprimer les lignes uniques du fichier de droite
  -3              supprimer les lignes uniques des 2 fichiers

Publié : mer. 17 sept. 2008, 20:37
par youshe
Ahhhhhhhhh, encore du UUOC (Useless Use Of Cat) ! Je signale que
J'aurais pas lu vincentxavier, j'aurais cru à un gcarrier. Ca doit être archlinux qui pousse à ce genre de réflexions, j'adore :)
est tout aussi élégant, efficace et bien plus portable
Pas faux, je le saurai maintenant :)

Sinon, un sort sur les deux fichiers puis un :

Code : Tout sélectionner

diff f1.new f2.new | grep '<'
devrait donner quelque chose de bien non ?

Fred

Publié : mer. 17 sept. 2008, 21:49
par vincentxavier
Sauf que l'idée de Maître wain me semble plus pertinente !

comparer 2 fichiers [RESOLU]

Publié : jeu. 18 sept. 2008, 08:35
par djaac
merci bcp à tous