Displaying Files Side by Side in Linux

Working with files on Linux often involves comparing or analyzing multiple files at once. A useful way to do this is to view the files side by side in the terminal, allowing for easy comparison and analysis. This article explores various methods to view files side-by-side on Linux, including the diff and sdiff commands, as well as text editors like vim and emacs.

Using the diff Command

The diff command is a standard Linux utility that compares two files and displays the differences between them. By default, it shows a unified diff format, but can display files side by side using the -y or --side-by-side flag.

Basic diff Usage

To compare two files with the default format:

diff file1 file2
4,5c4,5
< This is the fourth line in file
< This is the fifth line in file
---
> This is the fourth line in filex
> This is the fifth line in filex

Side-by-Side Comparison

For a side-by-side view, use the -y flag:

diff -y file1 file2
This is the first line in file      This is the first line in file
This is the second line in file     This is the second line in file
This is the third line in file      This is the third line in file
This is the fourth line in file     | This is the fourth line in filex
This is the fifth line in file      | This is the fifth line in filex
This is the sixth line in file      This is the sixth line in file

The | symbol indicates lines that differ between the two files. You can also use --width to control the output width.

Using the sdiff Command

The sdiff command provides an interactive side-by-side merge tool. It displays files side by side and allows you to merge differences interactively.

sdiff file1 file2
This is the first line in file       This is the first line in file
This is the second line in file      This is the second line in file
This is the third line in file       This is the third line in file
This is the fourth line in file      | This is the fourth line in filex
This is the fifth line in file       | This is the fifth line in filex
This is the sixth line in file       This is the sixth line in file

The sdiff command uses similar symbols to diff -y, with | marking different lines, < for lines only in the first file, and > for lines only in the second file.

Using the vim Text Editor

Vim provides powerful side-by-side file viewing capabilities with built-in diff highlighting.

Horizontal Split

vim -o file1 file2

This opens files in horizontal splits. Navigate between splits using Ctrl+w followed by arrow keys.

Vertical Split

vim -O file1 file2

This opens files in vertical splits, ideal for side-by-side comparison. Use :diffthis in each window to enable diff highlighting, or start with:

vimdiff file1 file2

Vim's diff mode automatically highlights differences and provides commands like ]c and [c to navigate between changes.

Using the emacs Text Editor

Emacs offers sophisticated file comparison through its built-in ediff mode.

Basic Side-by-Side View

emacs -nw file1

Then within Emacs, use C-x 3 to split the window vertically and C-x C-f to open the second file.

Using ediff

For advanced comparison, use Emacs' ediff mode:

emacs -nw --eval "(ediff-files "file1" "file2")"

This opens a three-panel interface showing both files side by side with a control panel for navigating differences.

Additional Tools

Tool Command Best For
diff -y diff -y file1 file2 Quick terminal comparison
sdiff sdiff file1 file2 Interactive merging
vimdiff vimdiff file1 file2 Advanced editing with highlighting
meld meld file1 file2 GUI-based comparison

Conclusion

Linux provides multiple powerful tools for displaying files side by side, each suited for different use cases. The diff and sdiff commands offer quick terminal-based comparisons, while vim and emacs provide advanced editing capabilities with syntax highlighting and navigation features. Choose the method that best fits your workflow and comparison needs.

Updated on: 2026-03-17T09:01:38+05:30

19K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements