Команда сравнения Linux

Komanda Sravnenia Linux

Различие, скорее всего, будет понятием или чувством, которое может отличить одну вещь от другой. Команда «diff» относится к вариациям. Анализируя документы построчно, этот инструмент демонстрирует различия между файлами. Он сообщает нам, какие разделы в одном документе необходимо изменить, чтобы сделать документы похожими, в отличие от сопутствующих элементов cmp и comm. Важным аспектом, о котором следует помнить, является то, что для того, чтобы документы были похожи, diff использует определенные специальные символы и команды. Вам даются указания, как изменить первый документ, чтобы он соответствовал другому документу. В этом руководстве мы обсудим использование команды «diff» в Ubuntu 20.04 с использованием терминала Linux.

Мы создали два текстовых файла в рабочей папке нашей системы.









Пришло время использовать инструкцию «diff» в области запроса, чтобы отобразить разницу между содержимым обоих файлов. Мы пробуем эту инструкцию «diff» с обоими именами файлов в последовательности, то есть сначала с одним файлом .txt, а затем с двумя файлами .txt. Выполнение команды «diff» показывает нам разницу между обоими файлами как:



  • Номера строк согласно первому текстовому файлу.
  • Специальные символы/символы, сообщающие нам о различиях, таких как изменение, добавление, удаление.
  • Номера строк согласно второму текстовому файлу.

В нашей первой иллюстрации мы уточнили символ «a» среди номеров строк вывода команды «diff»; «a» используется как сокращение от «Add». Использование инструкции «cat» с обоими именами файлов в области запроса отдельно отображает содержимое внутри каждого текстового файла, то есть один.txt и два.txt. У нас есть всего 4 строки в первом файле, а второй файл содержит 5 строк. 1 строка дополнительная.





Затем мы пробуем инструкцию «diff» в области запроса терминала, за которой следуют имена файлов — one.txt и two.txt. Выполнение этой инструкции показывает «0a1» в качестве вывода вместе со строкой 1 из второго файла, которая является дополнительной строкой во втором файле. Числовое значение «0» используется для строки 0 или перед строкой 1 первого файла, т. е. one.txt. Символ «а» означает «добавить». Наконец, числовое значение «1» означает первую строку второго файла. Смешанный вывод «0d1» означает, что строка 1 второго файла «two.txt» должна быть добавлена ​​в начало первого файла «one.txt», прежде чем первая строка 2 сделает оба файла одинаковыми.



Теперь мы обновляем оба файла, чтобы увидеть другую иллюстрацию. Первый файл «one.txt» содержит 4 строки, а второй файл «two.txt» содержит только 3 строки. Единственная разница для этих файлов заключается в использовании дополнительной строки в первом файле, т. е. строки 1 = «Понедельник», которой нет во втором файле. Попробовав инструкцию «diff» для обновленных текстовых файлов, мы получим «1d0» в качестве вывода. И отображается первая строка из первого файла. В «1d0» 1 означает, что первая строка из файла «one.txt» должна быть удалена (согласно символу «d»), а 0 означает, что второй файл не обновлялся. В итоге для наглядности выводится строка 1 из первого файла «one.txt».

Точно так же команда «diff» может отображать разницу между строками двух файлов. Поэтому еще раз обновляем оба текстовых файла. На этот раз первый файл содержит 5 строк, а второй файл содержит только 4. Единственная разница заключается в использовании дополнительной строки в one.txt, которая является строкой 3. Команда diff, используемая для обоих файлов в терминале, отображает выведите «3d2» вместе со строкой 3 из первого файла «one.txt». Этот вывод показывает, что строка 3 из первого файла «one.txt» должна быть удалена, чтобы мы могли синхронизировать оба файла в строке 2 второго файла. Отображается другая строка «3», чтобы мы могли получить четкое представление о разнице.

Давайте посмотрим на результат яснее и глубже. Вывод 1,5c1,2 из следующего изображения показывает, что строки с 1 по 5 первого файла (one.txt) должны быть заменены строками с 1 по 2 второго файла (two.txt). Это означает, что первые 5 строк (с 1 по 5) файла one.txt должны быть изменены и заменены первыми двумя строками (1, 2) второго файла «two.txt», чтобы они были одинаковыми. В итоге отображаются все 5 строк из первого файла, которые следует заменить отображаемыми 2 строками из второго файла. Вот как символ «с» говорит о разнице между двумя файлами — в обоих файлах нет одинаковых строк.

Команда «diff» позволяет вам получить вывод в контекстной форме. Представьте, что у вас есть два одинаковых файла со следующими данными в этих файлах. Контекст вывода будет заключаться в отображении основного различия между всеми простыми файлами, показанными на следующем изображении. Теперь у нас есть 5 строк в первом файле «one.txt» и 4 строки во втором файле «two.txt».

Чтобы получить контекстный вывод инструкции «diff», нам нужно использовать параметр «-c» в команде «diff». Используя ранее обновленные файлы в этой команде «diff», мы получаем следующий вывод — дату, день, а также дополнительную информацию о создании текста в файлах. Отображаются 5 строк из файлов one.txt. В частности, его третья строка выделена с помощью символа «-», чтобы просто добавить ее в другой файл.

Вывод

Мы постарались кратко объяснить все об инструкции «diff». Для этого мы каждый раз обновляли наши текстовые файлы и получали обновленный вывод для добавления, удаления и изменения данных в файле. Во введении объясняется цель использования команды «diff» в Linux и способы ее использования в Linux.