156 votes

unix diff résultats côte à côte ?

Comment puis-je tracer les résultats d'une commande diff unix côte à côte au lieu d'une différence après l'autre ? Voir l'exemple ci-dessous :

    diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf
< asdfsad
< fsaf
< fdsadf
---
> asdfsafdsf
> saf
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa
< fd
---
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> safa

J'aimerais avoir quelque chose comme :

diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf       > asdfsafdsf
< asdfsad        > saf       
< fsaf
< fdsadf
---
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa               > sadf
< fd              > sadf
---               > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > safa

232voto

fedorqui Points 42938

De man diff vous pouvez utiliser -y à faire côte à côte.

-y, --side-by-side
       output in two columns

Donc, disons :

diff -y /tmp/test1  /tmp/test2

Test

$ cat a                $ cat b
hello                  hello
my name                my name
is me                  is you

Comparons-les :

$ diff -y a b
hello                                                           hello
my name                                                         my name
is me                                                         | is you

75voto

Rjazhenka Points 988
diff -y --suppress-common-lines file1 file2

60voto

Graham Wager Points 350

De la part d'icdiff page d'accueil :

enter image description here

Votre terminal peut afficher la couleur, mais la plupart des outils de comparaison n'en font pas bon usage. En mettant en évidence les changements, icdiff peut vous montrer les différences entre des fichiers similaires sans vous gêner. Ceci est particulièrement utile pour identifier et comprendre les petits changements dans les lignes existantes.

Au lieu d'essayer d'être un remplacement de diff pour toutes les circonstances, le but d'icdiff est d'être un outil que vous pouvez atteindre pour obtenir une meilleure image de ce qui a changé quand ce n'est pas immédiatement évident à partir de diff.

IMHO, sa sortie est beaucoup plus lisible que diff -y .

21voto

srpatch Points 307

Vous pouvez utiliser :

sdiff  file1 file2

ou

diff -y file1 file2

ou

vimdiff file1 file2

pour un affichage côte à côte.

12voto

iiSeymour Points 34967

Vous devriez avoir sdiff pour la fusion côte à côte des différences de fichiers. Prenez connaissance de man sdiff pour l'histoire complète.

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