How can I plot the results of a unix diff command side-to-side instead of one difference after the other? See below for an example:

 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 

I would like to have something like:

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 
3

11 Answers

From man diff, you can use -y to do side-by-side.

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

Hence, say:

diff -y /tmp/test1 /tmp/test2 

Test

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

Let's compare them:

$ diff -y a b hello hello my name my name is me | is you 
5
diff -y --suppress-common-lines file1 file2 
5

From icdiff's homepage:

enter image description here

Your terminal can display color, but most diff tools don't make good use of it. By highlighting changes, icdiff can show you the differences between similar files without getting in the way. This is especially helpful for identifying and understanding small changes within existing lines.

Instead of trying to be a diff replacement for all circumstances, the goal of icdiff is to be a tool you can reach for to get a better picture of what changed when it's not immediately obvious from diff.

IMHO, its output is much more readable than diff -y.

You can use:

sdiff file1 file2 

or

diff -y file1 file2 

or

vimdiff file1 file2 

for side by side display.

1

You should have sdiff for side-by-side merge of file differences. Take a read of man sdiff for the full story.

1

You can simply use:

diff -y fileA.txt fileB.txt | colordiff 

It shows the output splitted in two colums and colorized! (colordiff)

3

Try cdiff - View colored, incremental diff in workspace or from stdin with side by side and auto pager support.

You can use vimdiff.

Example:

vimdiff file1 file2 

If your files have inconsistent use of spaces and tabs, you may find it helpful to include the -t argument to expand the tabs:

diff -ty file1 file2 

Use the -y option:

diff -y file1 file2 

Enhanced diff command with color, side by side and alias

Let's say the file contents are like:

cat /tmp/test1.txt 1 2 3 4 5 8 9 

and

cat /tmp/test2.txt 1 1.5 2 4 5 6 7 

Now comparing side-by-side

diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always /tmp/test1.txt /tmp/test2.txt > 1.5 3 < 8 | 6 9 | 7 

You can define alias to use

alias diff='diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always' 

Then new diff result:

diff /tmp/test1.txt /tmp/test2.txt > 1.5 3 < 8 | 6 9 | 7 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy