Linux sdiff Command Examples

The sdiff command is a powerful Linux utility that provides side-by-side file comparison with interactive merging capabilities. Unlike traditional diff commands that show differences vertically, sdiff displays files in parallel columns, making it easier to visualize changes and identify discrepancies between two files.

This command is particularly useful for system administrators, developers, and anyone who needs to compare configuration files, source code, or text documents. The interactive nature of sdiff allows users to selectively merge changes, creating a unified output file based on their preferences.

Syntax

The basic syntax for the sdiff command is:

sdiff [options] file1 file2

Where file1 and file2 are the names of the two files you want to compare.

Basic File Comparison

To perform a simple side-by-side comparison of two files:

sdiff file1.txt file2.txt
This is some text in file1.    | This is some text in file2.
It has a few lines.            | It also has a few lines.
These lines are the same.      | These lines are slightly different.
This is the end of file1.      < This is the end of file2.

The output shows differences using symbols: | indicates different lines, < shows lines only in the left file, and > shows lines only in the right file.

Common Options

Treat All Files as Text (-a)

The -a flag forces sdiff to treat all files as text, comparing them line-by-line even if they contain binary data:

sdiff -a file1.txt file2.txt
Hello world                             | Hello there

Ignore Case Differences (-i)

Use -i to perform case-insensitive comparisons:

sdiff -i file1.txt file2.txt
This is line 1.                  |  this is line 1.

Ignore Blank Lines (-B)

The -B option ignores blank lines during comparison:

sdiff -B file1.txt file2.txt
This is line 1.                  |  This is line 1.
This is line 2.                  |  This is line 2.
This is line 3.                  |  This is line 3.

Whitespace and Tab Handling

Ignore All Whitespace (-W)

To ignore all whitespace differences:

sdiff -W file1.txt file2.txt

Ignore Trailing Whitespace (-z)

The -z option ignores trailing whitespace at the end of lines:

sdiff -z file1.txt file2.txt

Expand Tabs to Spaces (-t)

Convert tabs to spaces in the output for better alignment:

sdiff -t file1.txt file2.txt
This line contains     a tab.    | This line contains       a tab.
This line has a        tab.      | This line has a             tab.

Output Control

Set Column Width (-w)

Customize the output width using the -w option (default is 130 columns):

sdiff -w 80 file1.txt file2.txt

Interactive Mode with Output File (-o)

Use the -o flag to save output to a file and run interactively:

sdiff -o merged_output.txt file1.txt file2.txt

This opens an interactive session where you can choose which version of each differing line to keep in the merged output file.

Advanced Options

Use Alternative Diff Program

The --diff-program option allows you to specify a different comparison tool:

sdiff --diff-program=diff file1.txt file2.txt
1,3c1
< This is the content of file 1
< which has multiple lines
---
> This is the content of file 2

Common Use Cases

Scenario Command Purpose
Configuration files sdiff -i config1 config2 Case-insensitive comparison
Code files sdiff -t -w 120 file1.c file2.c Tab expansion with custom width
Log files sdiff -B -z log1.txt log2.txt Ignore blank lines and trailing spaces
Interactive merge sdiff -o merged.txt file1 file2 Create merged output file

Conclusion

The sdiff command is an essential tool for file comparison in Linux, offering side-by-side visualization that makes differences easy to spot. Its interactive merging capabilities and numerous options for handling whitespace, case sensitivity, and formatting make it versatile for various comparison tasks. Whether you're comparing configuration files, source code, or documentation, sdiff provides the flexibility and clarity needed for effective file analysis.

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

785 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements