web-dev-qa-db-fra.com

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

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 ci-dessous pour un exemple: 

    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
74
719016

À partir de man diff, vous pouvez utiliser -y pour le faire côte à côte.

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

Par conséquent, dites:

diff -y /tmp/test1  /tmp/test2

Tester

$ 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
114
fedorqui

De icdiff's homepage :

enter image description here

Votre terminal peut afficher la couleur, mais la plupart des outils de diff ne l'utilisent pas bien. En mettant en évidence les modifications, 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 de remplacer les diff pour toutes les circonstances, icdiff a pour objectif d'être un outil que vous pouvez utiliser pour obtenir une meilleure image de ce qui a changé lorsque ce n'est pas immédiatement évident.

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

26
timmfin

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

8
Chris Seymour

Vous pouvez utiliser:

sdiff  file1 file2

ou 

diff -y file1 file2

ou

vimdiff file1 file2

pour l'affichage côte à côte.

8
srpatcha

Vous pouvez simplement utiliser:

diff -y fileA.txt fileB.txt | colordiff

Il montre la sortie divisée en deux colonnes et colorisée! (colordiff)

6

Utilisez l'option -y:

diff -y file1 file2
4
rectummelancolique

Try cdiff - Affichez les différences colorées et incrémentielles dans un espace de travail ou depuis stdin avec le support côte à côte et le support de pager automatique.

4
ymattw

Vous pouvez utiliser vimdiff.

Exemple:

vimdiff file1 file2
2
Eduardo Cuomo
diff -y --suppress-common-lines file1 file2
2
Rjazhenka

Si vos fichiers utilisent des espaces et des tabulations de manière incohérente, il peut être utile d’inclure l’argument -t pour développer les onglets:

diff -ty file1 file2
0
Bucket