|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : mai 2004 Messages : 199 ![]() |
Bonjour
Je voudrais savoir s'il était possible de comparer plus de deux fichiers entre eux. J'ai 6 fichiers à comparés. POur le moment j'utilise la fonction cmp : Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() |
Hmm 6 ? Pardon, j'avais lu 3. Ça doit être faisable, dans tous les cas diff est plus raffiné que cmp. Quelle est la nature et le format de tes fichiers, quelles différences cherches-tu ? Peut-être peux-tu faire ça dans un language de script.
|
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : mai 2004 Messages : 199 ![]() |
ce sont des fichiers txt.
On cherche juste à savoir si il y a des différences et non lesquelles. |
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() |
Alors peu importe le nombre 2, 3, 6 ou que sais-je 1000. Utilise le fait que l´égalité est transitive (l'inégalité ne l'est pas) et compare deux à deux.
Soit tu choisis un étalon et y compare tous les autres (la meilleur solution, si tes fichiers ont une forte probabilité d'être tous identiques), quitte à comparer ensuite entre eux ceux qui différent de l'étalon. Soit tu formes des couples, mais cette solution n'est viable qu'en dessous d'un certain nombre de fichiers. Sur 6 fichiers la première solution te permet déjà de voir très rapidement s'ils ne sont pas tous identiques et lesquels différent. A 6 tu peux te permettre de faire varier l'étalon (5 en tout). Un script bash devrait faire l'affaire. |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : mai 2004 Messages : 199 ![]() |
on ma demandé de faire un script shell
et je dois comparer tous les fichiers entre eux donc on peux exclure l'idée de comparer les fichier par couple |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 968 ![]() |
Vu la conclusion erronée de ta dernière phrase, je te conseille d'étudier d'abord les bases de la logique avant de te lancer dans un script.
|
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() |
Dans le post précédent, l'as-tu vraiment lu ?, je t'ai indiqué la méthode générale à suivre.
Une comparaison se fait toujours entre deux éléments (par exemple pour décider s'ils sont identiques). Pour comparer un nombre donné d'éléments (peu importe que ce soit des fichiers ou des variables), tu dois d'abord les apparier. Plus haut, je t'invitais à réfléchir sur les hypothèses à faire sur tes données afin de réduire le nombre de couples à examiner et d'optimiser l'ordre dans lesquels tu les examines. Pour ta gouverne, bash est le bourne again shell ; si tu es sous Linux, c'est certainement ton shell par défaut. Et entre nous, si tu tiens des conseils des posts précédents ce n'est pas vraiment sorcier et ça tient en moins de dix lignes de code (grand maximum). Bien sûr personne ne le fera probablement pour toi mais si tu postes tes essais on peut t'aider. |
|
|
00
|
|
|
#9 |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 5 497 ![]() |
Bonjour,
Non, il n'est pas possible, en un seul appel de commande, de comparer 6 ficheirs entre eux. Ensuite, il faut savoir ce que tu souhaites obtenir comme résultat :
La solution a la première possibilité t'a été donnée dans les précédetns postes : il suffit de comparer le premier fichier à chacun des 5 autres. Si tu trouves une différences à un moment, alors tu peux sortir : ils ne sont pas tous identiques. pour cela, tu peux utiliser diff ou cmp, en analysant les codes de retour. Pour la seconde possibilité, c'est plus complexe : tu as plus de comparaisons à faire. Si c'est ce que tu souhaites faire, écris l'algorithme sur un papier, et une fois que tu l'auras validé, alors seulement tu pourras t'intéresser au développement du script. Si tu as des problèmes sur l'algorithme, poses ta question dans le forum éponyme. Si tu as des questions sur le développement du script, postes ton scripts ici avec l'explication de ce qui pose problème et où tu coinces pour résoidre le problème. Cordialement, |
|
|
00
|
|
|
#10 | ||
|
Membre expérimenté
![]() |
Je n'aime pas mâcher le travail mais parfois un exemple aide à comprendre. Volià donc une solution simple. (Je suppose que tes fichiers sont file1 file2 ... file6)
Code :
Si tu cherches les différences utilise diff (comme cela a été dit plus haut). |
||
|
|
00
|
|
|
#11 | |||||||
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Citation:
Code :
Code :
Code :
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
|||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com