Команды Linux · 3 min read · Sep 20, 2025

Учебник по команде sdiff в Linux для начинающих (8 примеров)

Здесь, на HowtoForge, мы уже обсуждали множество утилит командной строки, которые сосредоточены на поиске различий в файлах. Но есть еще несколько таких инструментов, и в этом учебнике мы обсудим одну из таких команд под названием sdiff, используя несколько простых для понимания примеров.

Пожалуйста, обратите внимание, что все примеры команды sdiff, упомянутые в этой статье, были протестированы на Ubuntu 22.04 LTS.

Команда sdiff в Linux

Команда sdiff показывает различия в файлах в виде бокового сравнения. Вот ее синтаксис:

sdiff [OPTION]... FILE1 FILE2

А вот как это описано в справочной странице:

sdiff - боковое слияние различий в файлах  
Боковое слияние различий между FILE1 и FILE2.

Следующие примеры в формате вопросов и ответов должны дать вам хорошее представление о том, как работает этот инструмент.

Вопрос 1. Как работает команда sdiff?

Основное использование простое, все, что вам нужно сделать, это запустить команду sdiff с именами файлов в качестве аргументов. Например:

sdiff file1 file2

file1 и file2 были точно такими же в моем случае.

А вот вывод, который сгенерировала команда sdiff в этом случае:

Этот тип вывода означает, что в файлах нет различий.

Вопрос 2. Как заставить sdiff игнорировать регистр?

Предположим, file1 и file2 содержат следующие строки:

Команда:

sdiff file1 file2

выдает следующий вывод:

Вертикальная черта (|) в первой строке во втором столбце указывает на то, что два файла различаются в самой первой строке. Однако, если вы хотите, вы можете заставить sdiff игнорировать регистр, что можно сделать с помощью параметра командной строки -i.

sdiff -i file1 file2

Теперь вы можете видеть, что вывод показывает, что два файла идентичны, что означает, что различие в регистре было проигнорировано.

Вопрос 3. Как заставить sdiff игнорировать пробелы?

Если какой-либо из файлов содержит пробелы, команда sdiff по умолчанию покажет различия. Однако, если вы хотите, вы можете подавить это поведение, используя параметр командной строки -Z:

Как заставить sdiff игнорировать пробелы

Затем есть несколько других параметров, связанных с пробелами, о которых вам следует знать. Вот список:

-E, --ignore-tab-expansion  
                 игнорировать изменения из-за расширения табуляции
-b, --ignore-space-change  
                 игнорировать изменения в количестве пробелов
-W, --ignore-all-space  
                 игнорировать все пробелы

Вопрос 4. Как заставить sdiff игнорировать пустые строки?

Так же, как и пробелы, по умолчанию команда sdiff также учитывает пустые строки. Например:

Как заставить sdiff игнорировать пустые строки

Однако вы можете заставить команду игнорировать пустые строки, используя параметр командной строки -B.

sdiff -B file1 file2

вывод строки

Таким образом, вы можете видеть, что команда sdiff не считала пустую строку различием в этом случае.

Вопрос 5. Как заставить sdiff подавлять общие строки?

Предположим, файлы содержат некоторые общие строки, и вы хотите, чтобы команда sdiff подавляла общие строки, тогда вы можете сделать это, используя параметр командной строки -s.

sdiff -s file1 file2

Вопрос 6. Как заставить sdiff использовать другую программу diff?

По умолчанию sdiff использует diff для выполнения сравнения. Однако, если вы хотите, вы даже можете заменить diff на программу по вашему выбору. Для этого используйте параметр –diff-program, который требует имени программы в качестве ввода.

sdiff --diff-program=[PROGRAM] file1 file2

Вопрос 7. Как сохранить вывод sdiff в файл

Параметр -o или –output позволяет нам сохранить результат sdiff в выходной файл. Пример:

sdiff --output=/tmp/mydiff.txt file1 file2

Вопрос 8. Как вывести только левый столбец

С помощью параметра командной строки -l или его длинной формы –left-column вы получите только левый столбец в результате.

sdiff --left-column file1 file2

Заключение

Инструмент Sdiff предлагает множество функций, но его кривая обучения не так крута. Все, что вам нужно сделать, это немного попрактиковаться, и вы будете готовы. Мы обсудили большинство параметров командной строки здесь. Для получения дополнительной информации перейдите на справочную страницу sdiff.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.