GNU/Linux >> Tutoriels Linux >  >> Linux

Comparer deux fichiers dans un terminal Linux

si vim est installé, essayez ceci :

vimdiff file1 file2

ou

vim -d file1 file2

vous le trouverez fantastique.


Essayez sdiff (man sdiff )

sdiff -s file1 file2

Si vous préférez le style de sortie diff de git diff , vous pouvez l'utiliser avec le --no-index flag pour comparer les fichiers qui ne se trouvent pas dans un dépôt git :

git diff --no-index a.txt b.txt

En utilisant quelques fichiers avec environ 200 000 chaînes de noms de fichiers dans chacun, j'ai comparé (avec le time intégré commande) cette approche par rapport à certaines des autres réponses ici :

git diff --no-index a.txt b.txt
# ~1.2s

comm -23 <(sort a.txt) <(sort b.txt)
# ~0.2s

diff a.txt b.txt
# ~2.6s

sdiff a.txt b.txt
# ~2.7s

vimdiff a.txt b.txt
# ~3.2s

comm semble être de loin le plus rapide, tandis que git diff --no-index semble être l'approche la plus rapide pour une sortie de style diff.

Mise à jour 2018-03-25 Vous pouvez en fait omettre le --no-index sauf si vous êtes dans un référentiel git et que vous souhaitez comparer des fichiers non suivis au sein de ce référentiel. À partir des pages de manuel :

Ce formulaire consiste à comparer les deux chemins donnés sur le système de fichiers. Vous pouvez omettre l'option --no-index lors de l'exécution de la commande dans un arbre de travail contrôlé par Git et qu'au moins l'un des chemins pointe en dehors de l'arbre de travail, ou lors de l'exécution de la commande en dehors d'un arbre de travail contrôlé par Git.


Triez-les et utilisez comm :

comm -23 <(sort a.txt) <(sort b.txt)

comm compare les fichiers d'entrée (triés) et génère par défaut trois colonnes :les lignes uniques à a, les lignes uniques à b et les lignes présentes dans les deux. En spécifiant -1 , -2 et/ou -3 vous pouvez supprimer la sortie correspondante. Donc comm -23 a b répertorie uniquement les entrées qui sont uniques à a. J'utilise le <(...) syntaxe pour trier les fichiers à la volée, s'ils sont déjà triés, vous n'en avez pas besoin.


Linux
  1. Copier des fichiers dans le terminal Linux

  2. Renommer un fichier dans le terminal Linux

  3. Déplacer des fichiers dans le terminal Linux

  4. Comment compresser et décompresser des fichiers sous Linux

  5. Comment rechercher des fichiers avec la commande fd sous Linux

Comment trouver des fichiers en utilisant la ligne de commande dans le terminal Linux

8 méthodes pour renommer plusieurs fichiers à la fois sous Linux

Comment afficher deux fichiers côte à côte sous Linux

Comment comparer deux fichiers dans un terminal Linux

Comment copier des fichiers et des répertoires dans un terminal Linux

Utilisation de la commande Diff pour comparer deux fichiers dans un terminal Linux