И така, как става разл команда действително функционира? 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.