web-dev-qa-db-fra.com

L'utilitaire DIFF fonctionne pour 2 fichiers. Comment comparer plus de 2 fichiers à la fois?

Donc, l'utilitaire Diff fonctionne exactement comme je le souhaite pour 2 fichiers, mais j'ai un projet qui nécessite des comparaisons avec plus de 2 fichiers à la fois, peut-être jusqu'à 10 à la fois. Cela nécessite également d'avoir tous ces fichiers côte à côte. Ma recherche n'a vraiment rien trouvé, vimdiff semble être le meilleur jusqu'à présent avec la possibilité de comparer 4 à la fois.

Ma question: existe-t-il un utilitaire pour comparer plus de 2 fichiers à la fois, ou un moyen de pirater diff/vimdiff pour qu'il puisse faire plusieurs comparaisons? Les fichiers que je vais comparer sont relativement courts donc ça ne devrait pas être trop lent.

Merci d'avance!

74
Javed Ahamed

L'affichage de 10 fichiers côte à côte et la mise en évidence des différences peuvent être facilement effectués avec Diffuse . Spécifiez simplement tous les fichiers sur la ligne de commande comme ceci:

diffus 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt

103
Derrick Moser

Vim peut déjà le faire:

vim -d file1 file2 file3

Mais vous êtes normalement limité à 4 fichiers. Vous pouvez toutefois changer cela en modifiant une seule ligne dans la source de Vim. La constante DB_COUNT définit le nombre maximum de fichiers diff ed, et il est défini vers le haut de diff.c dans les versions 6.x et antérieures, soit environ les deux tiers de la descente structs.h dans les versions 7.0 et supérieures.

24
Noah Medling

diff a une option intégrée --from-file et --to-file, qui compare un opérande à tous les autres.

   --from-file=FILE1
          Compare FILE1 to all operands.  FILE1 can be a directory.

   --to-file=FILE2
          Compare all operands to FILE2.  FILE2 can be a directory.
3
Peacher Wu

Commander "Beyond Compare": http://www.scootersoftware.com/

Il vous permet de comparer des répertoires entiers de fichiers, et il semble qu'il fonctionne également sur Linux.

2
Scott Anderson

si vous exécutez plusieurs différences basées sur un fichier, vous pouvez probablement essayer d'écrire un script qui a une boucle for pour exécuter chaque répertoire et exécuter la différence. Bien que ce ne soit pas côte à côte, vous pouvez au moins les comparer rapidement. j'espère que cela a aidé.

1
Benjamin Neil