101 votes

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

L'utilitaire Diff fonctionne donc 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 d'avoir tous ces fichiers côte à côte les uns par rapport aux autres également. Mes recherches n'ont pas vraiment abouti, vimdiff semble être le meilleur jusqu'à présent avec la possibilité de comparer 4 fichiers à la fois.

Ma question : Existe-t-il un utilitaire permettant de comparer plus de 2 fichiers à la fois, ou un moyen de modifier diff/vimdiff pour qu'il puisse effectuer des comparaisons multiples ? Les fichiers que je vais comparer sont relativement courts, donc cela ne devrait pas être trop lent.

Merci d'avance !

0voto

anask Points 151

Je ne réponds pas à la question principale, mais voici quelque chose de similaire à ce que Benjamin Neil a suggéré mais diff tous les fichiers :

Stockez les noms de fichiers dans un tableau, puis bouclez sur les combinaisons de taille deux et diff (ou faites ce que vous voulez).

files=($(ls -d /path/of/files/some-prefix.*))     # Array of files to compare
max=${#files[@]}                                  # Take the length of that array
for ((idxA=0; idxA<max; idxA++)); do              # iterate idxA from 0 to length
  for ((idxB=idxA + 1; idxB<max; idxB++)); do     # iterate idxB + 1 from idxA to length
    echo "A: ${files[$idxA]}; B: ${files[$idxB]}" # Do whatever you're here for.
  done
done

Dérivé de @charles-duffy La réponse de la Commission : https://stackoverflow.com/a/46719215/1160428

-1voto

user14565488 Points 1

Il existe un moyen simple et efficace de le faire : GREP.

Selon la taille du texte, vous pouvez le copier et le coller, ou vous pouvez rediriger l'entrée du fichier vers la commande grep. Si vous faites un grep -vir /path pour faire une recherche inverse ou un grep -ir /path. C'est ma méthode pour les examens de certification.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X