GNU/Linux >> Tutoriels Linux >  >> Linux

Différence d'espace entre deux fichiers sous Linux

Sur FreeBSD ou la plupart des systèmes Linux, vous pouvez diriger la sortie de diff via cat -v -e -t pour afficher les différences d'espace.

diff file1 file2 | cat -vet

Les onglets seront affichés sous la forme ^I , un $ sera affiché à la fin de chaque ligne afin que vous puissiez voir les espaces de fin, et les caractères non imprimables seront affichés sous la forme ^X ou M-X .

Si vous avez GNU coreutils (disponible sur la plupart des distributions Linux non-busybox), cela peut être simplifié pour

diff file1 file2 | cat -A

Sur les systèmes busybox, utilisez catv -vet .


Pour vim utilisateurs, il existe un utilitaire pratique pour afficher les différences exactes entre les fichiers :

vimdiff file1 file2

Cela mettra chaque fichier dans des fenêtres, côte à côte, et les différences seront mises en surbrillance en couleur.

Quelques commandes utiles en vimdiff

En vimdiff , certaines commandes utiles sont :

  • ]c :passer au changement suivant

  • [c :saute au changement précédent

  • ctrl-W ctrl-W :passer à une autre fenêtre

  • zo :plis ouverts

  • zc :fermer les plis

Exemple

Voici un exemple de vimdiff dans un xterm comparer deux versions d'un cups fichier de configuration :

Vous pouvez voir que de longues sections de lignes identiques ont été réduites. Ils peuvent être rouverts avec zo .

Le jeu de couleurs variera en fonction de vos paramètres d'option. Dans l'exemple ci-dessus, lorsqu'une ligne apparaît dans un fichier mais pas dans l'autre, cette ligne reçoit un arrière-plan bleu foncé. Dans l'autre fichier, les lignes manquantes sont indiquées par des lignes pointillées. Lorsqu'une ligne apparaît dans les deux fichiers mais présente quelques différences, les parties inchangées des lignes ont un fond rose et les parties modifiées ont un fond rouge.


L'un des fichiers a-t-il été modifié sur une machine Windows ?

La terminaison de ligne standard sous Windows est CRLF, alors que sous Linux, c'est simplement LF (et sur Mac, c'était CR, mais je suppose que cela a changé depuis OS X).

Essayez wc -l sur les fichiers et voyez combien de lignes, puis voyez si la différence de taille est la même que le nombre de lignes (la dernière ligne ne peut pas être terminée dans un fichier).


Linux
  1. Comment transférer des fichiers entre deux ordinateurs à l'aide des commandes nc et pv

  2. Apprenez la différence entre les commandes "su" et "su -" sous Linux

  3. 5 outils de ligne de commande pour trouver rapidement des fichiers sous Linux

  4. Linux – Comment supprimer des fichiers créés entre deux fois ?

  5. Lignes communes entre deux fichiers ?

Partager des fichiers entre des postes de travail Linux avec Warpinator

Comment commenter des lignes dans les fichiers de configuration sous Linux

Comment comparer deux fichiers dans un terminal Linux

Comment synchroniser automatiquement des fichiers entre deux serveurs Linux

différence entre netstat et ss sous linux?

Comparer deux fichiers dans un terminal Linux