Команды 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 file2file1 и file2 были точно такими же в моем случае.
А вот вывод, который сгенерировала команда sdiff в этом случае:
Этот тип вывода означает, что в файлах нет различий.
Вопрос 2. Как заставить sdiff игнорировать регистр?
Предположим, file1 и file2 содержат следующие строки:
Команда:
sdiff file1 file2
выдает следующий вывод:
Вертикальная черта (|) в первой строке во втором столбце указывает на то, что два файла различаются в самой первой строке. Однако, если вы хотите, вы можете заставить sdiff игнорировать регистр, что можно сделать с помощью параметра командной строки -i.
sdiff -i file1 file2
Теперь вы можете видеть, что вывод показывает, что два файла идентичны, что означает, что различие в регистре было проигнорировано.
Вопрос 3. Как заставить sdiff игнорировать пробелы?
Если какой-либо из файлов содержит пробелы, команда sdiff по умолчанию покажет различия. Однако, если вы хотите, вы можете подавить это поведение, используя параметр командной строки -Z:

Затем есть несколько других параметров, связанных с пробелами, о которых вам следует знать. Вот список:
-E, --ignore-tab-expansion
игнорировать изменения из-за расширения табуляции-b, --ignore-space-change
игнорировать изменения в количестве пробелов-W, --ignore-all-space
игнорировать все пробелыВопрос 4. Как заставить 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.
Get new posts in your inbox
No spam. Unsubscribe anytime.