Поиск по сайту:

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


На этой странице

  1. Команда Linux sdiff
  2. Q1. Как работает команда sdiff?
  3. Вопрос 2. Как заставить sdiff игнорировать регистр?
  4. Вопрос 3. Как заставить sdiff игнорировать пробелы?
  5. Q4. Как заставить sdiff игнорировать пустые строки?
  6. В5. Как заставить sdiff подавлять общие строки?
  7. Q6. Как заставить sdiff использовать другую программу сравнения?
  8. Q7. Как сохранить вывод sdiff в файл
  9. Q8. Как вывести только левый столбец
  10. Заключение

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

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

Linux-команда sdiff

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

sdiff [OPTION]... FILE1 FILE2

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

sdiff - side-by-side merge of file differences
Side-by-side merge of differences between FILE1 and FILE2.

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

Q1. Как работает команда sdiff?

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

sdiff file1 file2

файл1 и файл2 были точно такими же в моем случае.

И вот вывод sdiff, полученный в этом случае:

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

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

Предположим, что файл1 и файл2 содержат следующие строки:

Команда:

sdiff файл1 файл2

производит следующий вывод:

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

sdiff -i файл1 файл2

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

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

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

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

-E, --ignore-tab-expansion
              ignore changes due to tab expansion
-b, --ignore-space-change
              ignore changes in the amount of white space
-W, --ignore-all-space
              ignore all white space

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

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

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

sdiff -B файл1 файл2

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

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

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

sdiff -s файл1 файл2

Q6. Как заставить sdiff использовать другую программу сравнения?

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

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

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

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

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

Q8. Как вывести только левый столбец

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

sdiff --left-column file1 file2

Заключение

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