In the world of Linux system administration and development, comparing files is an essential task when you are updating configuration files, reviewing code changes, or troubleshooting issues, the ability to compare two text files and quickly spot the differences can save you time and help you avoid costly errors.
In this guide, we’ll walk you through various methods to compare text files in Linux, from basic command-line tools to advanced visual diff tools. Each method has its own strengths, and we’ll explain when to use which one.
A Quick Scenario
Imagine you have two versions of a config file:
file1.txt
– an older versionfile2.txt
– a newer version
Your goal is to identify what’s changed.
1: Using the diff Command
The diff
command is a classic and powerful tool available on every Linux system that compares two files line by line and prints the differences.
diff file1.txt file2.txt

To make the output easier to read, you can use the following command, which will displays both files in two columns – left and right – so you can easily scan differences.
diff -y file1.txt file2.txt

If you want to display only the differences between two files while hiding identical lines, use the following command:
diff -y --suppress-common-lines file1.txt file2.txt

2. Comparing Files with sdiff
The sdiff command is another powerful tool in the GNU diffutils suite that allows you to compare two files side-by-side, just like diff -y
, but with added interactivity.
sdiff file1.txt file2.txt

You can also use sdiff
to interactively merge files using the -o
flag:
sdiff -o merged.txt file1.txt file2.txt
It will prompt you to choose which line to keep (left or right) and then write the result to merged.txt
.
3: Using colordiff for Color Output
The colordiff
tool is a user-friendly wrapper around diff
that enhances terminal output by adding color, making differences more visually distinct.
To install colordiff on Linux, use the following appropriate command for your specific Linux distribution.