Как да сравним два файла в Linux

How Compare Two Files Linux



Ако искате да сравните два файла и да дешифрирате разликата, се извиква команда разл се използва. Това ръководство е фокусирано върху предоставянето на използването на разл команда с различни опции, за да получите разликата между два файла.

И така, как става разл команда действително функционира? The разл командата сравнява двата файла и извежда списък с разлики между двата файла. По -точно, той дава списък с модификации, които трябва да бъдат направени в първия файл, за да съответстват на втория файл. The разл команда се използва и от програмистите, за да получат разликата между два файла с изходния код за разработване на кръпки.







Преди да се потопите в примерите, обърнете внимание, че редът на файловете е много важен. Защото разл командата дава изход въз основа на реда на файловете.



Как да използвате командата diff в Linux за сравняване на файлове:

Синтаксисът на разл командата е спомената по -долу:



$разл [настроики] [файл1] [файл2]

Първо създайте два файла. Създавам текстови файлове с името на test_file_1.txt и test_file_2.txt . Тези файлове съдържат съдържание с малка разлика:





Сега използвайте следната команда, за да получите разликата:



$разлtest_file_1.txt test_file_2.txt

Стандартният изход показва редовете, които съвпадат според реда на файловете, споменати в командата. Така че, нека декодираме изхода:

Сравнението на файловете е обозначено и всеки етикет има номер от двете страни. Форматът е следният:

[Номер на ред на файл 1] [Етикет (a, c, d)] [Номер на ред на файл 2]

Има три етикета:

  • да се - Добавяне: Добавяне на съдържание в първия файл за синхронизиране с втория файл.
  • ° С - Промяна: Показва, че е необходима промяна в съдържанието на първия файл, за да съответства на втория файл.
  • д - Изтриване: Премахване на съдържание от първия файл, за да съответства на втория.

2d1 показва изтриване на ред номер 2 на първия файл, за да съответства на втория файл от ред номер 1.

По същия начин, 4c3 означава да направите промяна в четвъртия ред на първия файл, за да съответства на ред номер 3 на втория файл, тъй като и двата реда са малко различни.

Има и друг метод за преглед на разликата, използвайте разл команда с опция:

$разл -IN 60test_file_1.txt test_file_2.txt

В горния изход съдържанието на test_file_1.txt се показва отляво, докато съдържанието на text_file_2.txt се показва от дясната страна. Разликата се обозначава със символите:

  • | - Редът е различен във втория файл
  • > - Редът е допълнителен във втория файл
  • <— Line has been deleted from the second file

-W показва ширината между съдържанието на два файла. За да получите отделно и да видите разликата, използвайте следното:

$разл -IN 60 -потискане-общи линииtest_file_1.txt test_file_2.txt

Как да получите изход в един ред с помощта на командата diff:

Ако методът с етикет е труден за декодиране, тогава има по -прост подход. Използвайки -q опция с разл командата ви дава изход в един ред. Е, без допълнителна информация обаче:

$разл -qtest_file_1.txt test_file_2.txt

Ако файловете се различават, горната команда ще даде резултат. Ако файловете са идентични, няма да има изход. За да го демонстрирам, създавам копие на test_file_1.txt използвайки:

$cptest_file_1.txt test_file_3.txt

Ще бъде създаден нов файл с името на test_file_3.txt съдържащи същото съдържание, което test_file_1.txt има. Сега използвайте:

$разл -qtest_file_1.txt test_file_2.txt

Тъй като и двата файла имат подобно съдържание, следователно няма да има изход.

Как да проверите разликата на файловете в контекстен режим с помощта на командата diff:

За да получите сравнението в контекстен режим, -° С опцията ще се използва с разл команда:

$разл -° Сtest_file_1.txt test_file_2.txt

Нека разчленим изхода.

За да се поддържа разликата, първият файл е обозначен с *** заедно с датата и часа на създаването, докато вторият файл е обозначен с -.

Следващият ред означава набор от линии, разгледани при сравнението. За първия файл е така *** 1.6 **** **** а за втория файл е —1,5—- :

Разликата се обозначава със символите:

  • +: Линията не присъства в първия файл. Вмъкнете го в първия файл или го премахнете от втория файл, за да съответства на двата файла.
  • -: Редът съществува в първия файл, но не и във втория файл. Опитайте се да го вмъкнете във втория файл или да го премахнете от първия, за да съответства на двата файла.
  • ! : Линията се нуждае от промяна, за да съответства.

Как да проверите разликата на файловете в унифициран режим с помощта на командата diff:

Унифицираният режим е доста подобен на контекстния режим, но без излишна информация. Знамето, което използваме, е -u :

$разл -utest_file_1.txt test_file_2.txt

В изхода първият файл е обозначен с -, а вторият с +++. Вторият ред показва броя редове, разглеждани за сравнение в двата файла, след това съдържанието, което трябва да бъде изтрито, добавено или модифицирано със символите с тях. В двата файла няма да има символ с подобни редове.

Как да игнорирате чувствителността на регистъра, докато използвате командата diff:

Ако искате да сравните файловете, като пренебрегнете чувствителността на регистъра, използвайте флаг:

$разл test_file_1.txt test_file_2.txt

За демонстрация направих д на Дипин в първия файл малък:

Както се вижда в първата команда, разликата е посочена; докато използвате тази разлика е премахната.

Някои други полезни опции на разл командите са изброени по -долу:

Опция Описание
-да се Тази опция третира всички файлове като текстови файлове
Той игнорира модификацията, при която всички редове са празни
Тази опция игнорира разширението на раздела
-Аз Той игнорира промените, при които всички редове съвпадат
Дава изход, когато два файла са идентични
Той игнорира цялото бяло пространство
-СЪС Той игнорира бялото пространство в края на реда

Как да използвате Vim Editor за сравняване на два файла:

Друг метод за сравняване на два файла е използването на vimdiff команда. За това трябва да имате инсталиран vim:

$sudoподходящИнсталирай дойдох

Сега, за да сравните два файла, използвайте:

$vimdiff test_file_1.txt test_file_2.txt

И двата файла ще бъдат отворени един до друг. Частта, която не съвпада, ще бъде маркирана:

Как да сравним два файла с помощта на colordiff:

Друг подход е нещо като разширение на разл команда. Можете да направите сравнението по -идентифицируемо, като добавите цветове към него. За инсталиране използвайте:

$sudoподходящИнсталирайcolordiff

За да сравните файлове, използвайте:

$colordiff test_file_1.txt test_file_2.txt

Можете да замените разл с colordiff за да получите стандартния изход на разл команда в цветен формат.

Заключение:

За сравняване на файлове в Linux и дори в macOS използваната помощна програма се нарича diff. Помощната програма diff сравнява два файла и дава информация за разликите между двата файла. Разработчиците използват предимно командата diff за създаване на файлове с кръпки.

В това ръководство обсъдихме подробно разл команда и как да я използвате за сравняване на два файла с различни опции. Научихме и как да използваме colordiff за да направите разликите във файловете по -разпознаваеми. Но ако смятате, че помощната програма, базирана на терминали, е трудна за използване, има и някои инструменти, базирани на графичен потребителски интерфейс, като Kompare, DiffMerge, Meld-Diff Tool и Diffuse-GUI Giff Tool.