Сравнение на файлове в Linux (команда diff). Преглед на инструментите за визуално сравнение и разрешаване на конфликти при сливане Сравняване на низове в linux файлове

Уеб администраторите или собствениците на сайтове често трябва да сравняват два файла по съдържание. Тази статия ще ви покаже как да сравните два файла. Всички познати ми методи за сравняване на текстови файлове и скриптове (html, css, php и т.н.) са описани тук.

Метод 1 Мелд

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

В Meld можете да сравните два или три файла или две или три директории. Можете да видите вашето работно копие от популярни системи за контрол на версиите като CVS, Subversion, Bazaar-NG и Mercurial. Meld е достъпен за повечето дистрибуции на Linux (Ubuntu, Suse, Fedora и др.) и присъства в техните основни хранилища.

# смес за инсталиране на aptitude

Метод 2: Сравняване на съдържанието на два файла в WinMerge.

Безплатната програма WinMerge ви позволява да сравнявате не само съдържанието на файлове, но и съдържанието на цели папки. WinMerge е инструмент с отворен код за разлика и сливане за Windows. WinMerge може да сравнява както файлове, така и папки, показвайки разликите във визуалната текстова форма, която е лесна за разбиране и обработка.

След инсталирането отворете елемента от менюто "Файл" - "Отваряне". Изберете файлове за сравнение. За да направите това, кликнете върху бутона "Преглед" и изберете файла. След като изберете файловете, кликнете върху бутона "OK".

Можете също да редактирате файлове в WinMerge. След като затворите прозореца за сравнение, програмата ще ви подкани да запишете промените във файловете.

Метод 3. разл

разл- помощна програма за сравнение на файлове, която показва разликата между два файла.

    За да сравните директории, използвайте тази команда: $ diff -qr< current-directory> < backup-directory>

Метод 4 Сравнете

Compare - показва разликите между файловете. Може да сравнява съдържанието на файлове или директории, както и да създава, показва и прилага пач файлове. Kompare е графична помощна програма за разлика, която ви позволява да намирате разлики във файловете, както и да ги обедините. Написано на Qt и предназначено основно за KDE. Ето основните му характеристики:

    Поддръжка за множество различни формати;

    Поддръжка за сравняване на linux файл и директории;

    Поддръжка за преглед на diff файлове;

    Персонализиран интерфейс;

    Създаване и прилагане на корекции към файлове.

Метод 5. Сравнете файловете в Total Commander

    Поддържани операционни системи: Windows

Total Commander има инструмент за сравняване на файлове по съдържание, където можете не само да сравнявате съдържание, но и да го редактирате и копирате от един файл в друг.

След стартиране на Total Commander - в един от панелите изберете (клавиш Insert) първия файл за сравнение - във втория панел отворете папката с втория файл и поставете курсора върху него. Наричаме програмата за сравнение: "Файлове → Сравнение по съдържание".

За да направите промени във файла, просто кликнете върху бутона „Редактиране“. Програмата има функции за копиране и връщане назад, търсене и промяна на кодирането. Ако сте направили промени във файла, след като затворите прозореца за сравнение, ще бъдете подканени да запазите промените.

Метод 6: Сравняване на файлове в Notepad++

    Поддържани операционни системи: Windows, може да работи на Linux

Notepad++ не може да сравнява файлове. За появата на тази функционалност в Notepad ++, трябва да инсталирате приставката „Сравнение“.

Стартирайте редактора - отидете на елемента от менюто "Plugins" - "Plugin Manager" - "Show Plugin Manager". В новия прозорец изберете плъгина „Сравни“ и щракнете върху бутона „Инсталиране“.

След като инсталирате приставката, отворете двата файла и изберете менюто "Plugins" - "Compare" - "Compare (Alt + D)". Резултатът от сравнението на файловете ще бъде представен в отделни панели. Линиите, където са открити разлики, ще имат предупредителен знак до тях.

Метод 7: Сравнете файлове с помощта на командния ред на Windows

Сравнението с помощта на командния ред на Windows (cmd.exe) не ви позволява да редактирате файлове, но можете просто да сравните съдържанието на файловете, като използвате този метод.

За да извикате командния ред на Windows, отидете на "Старт" - "Всички програми" - "Аксесоари" - "Команден ред" или натиснете клавишите "Windows + R", въведете cmd и натиснете клавиша Enter.

В командния ред въведете командата:

fc / N път към първия файл път към втория файл

Без значение каква система трябва да се забърквам с кода, рано или късно става твърде скъпо да сравнявам различни версии на изходния код. Ето лесни безплатни помощни програми за намиране на разлики във файлове под Linux, Windows и Mac. Общият формат за стартиране е файл1 файл2.

Под Windows задачата за сравняване на съдържанието на файлове (и директории, което понякога не е безполезно) върши отлична работа - WinMerge. Светлина. Не е обвързан с никаква IDE. Написано на Qt и кросплатформен - също трябва да работи на nix. В допълнение към файловете, той може също да сравнява съдържанието на директории (включително тези, базирани на маски на регулярни изрази). Можете да добавите допълнителни плъгини.

WinMerge е помощна програма за сравняване на файлове между платформи и други

Mac - opendiff. Представлява отделен Xcode компонент. Доста самостоятелно се стартира от командния ред. Разликите са подчертани в бледо сиво, но между другото може да покаже със стрелки какво е добавено къде. Може да извършва сливане (ключ -сливане). Ако в допълнение към сравняваните файлове посочите общ файл предшественик след ключа -ancestor, тогава сравнението ще бъде направено с него. Възможност за сравняване на папки.

opendiff е безплатен инструмент за сравнение на файлове за Mac

Linux - . Предлага се на всички платформи (Windows, Mac, Linux) поради факта, че е написан и на Qt. Възможност за сравняване на до три файла или директории. Поддържа възможността за сливане на промените, с поддръжка за редактиране за ръчно разрешаване на конфликти.

kdiff3 помощна програма - сравняване на два файла

АКТУАЛИЗАЦИЯ 18.10.2013 г

Ако използвате Gnom на nix, тогава meld е чудесен избор. Интеграция с популярни системи за контрол на версиите (Git, Subversion и др.), инструменти за сливане - автоматично сливане, редактиране с улавяне на текущите разлики в движение, подчертаване на синтаксиса. Има портове за OS X Windows.

Е, до крайност (ако не можете да поставите нищо на трета страна) - на помощ идва грозна разлика под командния ред (той е предварително инсталиран на системи, подобни на nix, включително както Macs, така и Solaris). Гъвкава. Можете да играете с настройките дълго време и с удоволствие, за да можете да показвате разлики въз основа на маската (-F), да получите сравнение в обичайните две колони (ключ – един до друг) и т.н. За обемни непознати файлове предпочитам изхода в „контекстуален“ формат, когато се показват не само променените редове, но и съседните.

За сравняване на повече от два файла, diff3 може да е подходящ.

За да сравни два или повече файла, Linux има командата diff. Може да сравнява както отделни файлове, така и директории. Нека разгледаме синтаксиса, опциите за командата diff и някои примери за употреба.

diff команден синтаксис

Командата diff има следния синтаксис:

Diff [опции] файлове-или-директории

Посочваме опции и захранваме в два или повече файла или директории, които трябва да сравним.

опции на командата diff

Помислете за основните опции на командата diff. Ще разгледам само онези опции, които аз самият използвам най-често.

игнорирайте промените, свързани с добавянето на табулатор в текста.
игнорирайте промените, свързани с добавянето на интервали.
-wигнорирайте промените, свързани с добавянето на интервали и табулатори.
игнорирайте новите празни редове.
-p (или --show-c-function)показва името на езиковата функция C, в която са открити промените.
-y (или --едно до рамо)показване на резултатите в две колони.
-rпреглеждайте директории рекурсивно.
-X ФАЙЛИзключете от търсенето файлове, чиито имена съвпадат с шаблоните във файла FILE.
-d (или --минимално)опитайте се да намерите възможно най-малко промени (тоест, елиминирайте фалшивите положителни резултати).

Примери за използване на командата diff

Сравняване на два текстови файла

За просто сравнение на два текстови файла с име myfile1 и myfile2, изпълнете командата в терминала:

Разлика myfile1 myfile2

Удобно е да пренасочите изхода на командата diff към файл с разширение diff. Повечето текстови редактори на Linux, като Gedit, разпознават този файл и подчертават неговия синтаксис. За да насочите резултата от сравнението към файла changes.diff, трябва да използвате символа за пренасочване на поток (>):

Diff myfile1 myfile2 > changes.diff

Сравнение на директории, съдържащи текстови файлове

Помислете за пример за сравняване на две директории (mydir1 и mydir2), които съдържат текстови файлове. Основната разлика тук от примера по-горе е, че ще добавим опцията -r, което означава рекурсивно преминаване на файлове в директории.

Diff -r mydir1 mydir2 > changes.diff

Сега да предположим, че директориите, в които сравняваме файлове, съдържат много "боклук", който не трябва да сравняваме. Нека създадем excludeFiles файл и да напишем в него шаблоните и имената на файловете, които не трябва да сравняваме. Например, съдържанието на excludeFiles може да изглежда така:

*.o ChangeLog* *.bak *.exe

Сега нека кажем на командата diff да използва нашия excludeFiles файл, когато сравняваме директории:

Diff -r -X excludeFiles mydir1 mydir2 > changes.diff

По този начин ние сравняваме файлове, чиито имена не съвпадат с шаблоните във файла excludeFiles, например vasya.exe или ChangeLog12.

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

Diff -rwBd -X excludeFiles mydir1 mydir2 > changes.diff

Сравняваме файлове в директориите mydir1 и mydir2, като игнорираме промените, свързани с добавянето на празни редове, интервали, табулатори, и използваме шаблони на имена на файлове в excludeFiles, за да изключим ненужните файлове от сравнението.

Заключение

Можете да получите повече информация за използването на командата diff на вашата Linux система, като изпълните командата:

човек диф

Има и програми, които ви позволяват да сравнявате файлове с помощта на графичен интерфейс. Например програмата Meld, която визуално показва къде и какво се е променило във файловете.

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

В тази статия ще разгледаме как се сравняват файловете на Linux. Ще анализираме най-полезните методи, както за терминала, така и в графичен режим. Нека първо да разгледаме как да сравним linux файл с помощта на помощната програма diff.

Помощната програма linux diff е програма, която работи в конзолен режим. Синтаксисът му е много прост. Обадете се на помощната програма, предайте необходимите файлове и задайте опции, ако е необходимо:

$ опции за разлика файл1 файл2

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

  • -q- показва само разликите във файловете;
  • - извеждат само съвпадащи части;
  • - показване на необходимия брой линии след съвпадения;
  • -u- показва само необходимия брой редове след разликите;
  • - извеждане в две колони;
  • - извеждане във формат ed скрипт;
  • - извеждане във формат RCS;
  • - сравняване на файлове като текстови файлове, дори и да не са текстови файлове;
  • - заменете разделите с интервали в изхода;
  • - разделяне на страници и добавяне на поддръжка за пейджинг;
  • -r- рекурсивно сравнение на папки;
  • -i- игнориране на регистъра;
  • - игнорирайте промените в разделите;
  • -Z- игнорирайте интервалите в края на реда;
  • - игнорирайте интервалите;
  • - Игнорирайте празните редове.

Това бяха основните опции на помощната програма, сега нека да разгледаме как да сравним Linux файлове. В изхода на помощната програма, освен директно показване на промените, тя показва ред, в който е посочено в кой ред и какво е направено. За това се използват следните символи:

  • а- добавено;
  • д- премахнати;
  • ° С- променено.

Освен това линиите, които се различават, ще бъдат обозначени със символа<, а те, которые совпадают - символом >.

Ето съдържанието на нашите тестови файлове:

Сега нека направим сравнение на diff файлове:

diff файл1 файл2

В резултат на това получаваме реда: 2.3c2.4. Това означава, че редове 2 и 3 са променени. Можете да използвате опции за игнориране на главни и малки букви:

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

Можете да изведете в две колони:

diff -y файл1 файл2

А с опцията -u можете да създадете кръпка, която след това може да бъде приложена към същия файл от друг потребител:

diff -u файл1 файл2

За да обработите няколко файла в папка, е удобно да използвате опцията -r:

diff -r ~/tmp1 ~/tmp2

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

diff -u файл1 файл2 > файл.кръпка

Както можете да видите, всичко е много просто. Но не е много удобно. По-приятно е да използвате графични инструменти.

Сравнение на Linux файлове с помощта на GUI

Има няколко страхотни инструмента за сравняване на файлове в linux в GUI. Можете лесно да разберете как да ги използвате. Нека разгледаме няколко от тях:

1. Сравнете

Kompare е графична помощна програма за разлика, която ви позволява да намирате разлики във файловете, както и да ги обедините. Написано на Qt и предназначено основно за KDE. Ето основните му характеристики:

  • Поддръжка за множество различни формати;
  • Поддръжка за сравняване на linux файл и директории;
  • Поддръжка за преглед на diff файлове;
  • Персонализиран интерфейс;
  • Създаване и прилагане на корекции към файлове.

2. Diff Merge

DiffMerge е междуплатформена програма за сравняване и обединяване на файлове. Позволява ви да сравнявате два или три файла. Поддържа редактиране на ред в движение.

особености:

  • Поддръжка за сравнение на директории;
  • Интеграция с преглед на файлове;
  • Възможност за персонализиране.

3. Мелд

Това е лек инструмент за сравняване и сливане на файлове. Позволява ви да сравнявате файлове, директории и да изпълнявате функциите на система за контрол на версиите. Програмата е предназначена за разработчици и има следните функции:

  • Сравнение на два и три файла;
  • Използване на персонализирани типове и думи;
  • Автоматичен режим на сливане и действия с текстови страни;
  • Поддръжка за Git, Mercurial, Subversion, Bazar и др.

4. Дифузна

Diffuse е друг популярен и доста прост инструмент за сравняване и сливане на файлове. Написано е на Python. Поддържат се две основни функции - сравнение на файлове и версия. Можете да редактирате файлове, докато ги гледате. Основни функции:

  • Подчертаване на синтаксиса;
  • Клавишни комбинации за лесна навигация;
  • Поддръжка за неограничен брой отмяна;
  • Поддръжка на Unicode;
  • Поддръжка за Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK и Monotone.

5.XXдиф

XXdiff е безплатен и много мощен инструмент за сравнение и сливане на файлове. Но програмата има няколко недостатъка. Това е липсата на поддръжка на Unicode и редактиране на файлове.

особености:

  • Плитко или рекурсивно сравнение на един или два файла и директории;
  • Осветяване на различията;
  • Интерактивна асоциация;
  • Поддръжка за външни инструменти за разлика като GNU Diff, SIG Diff, Cleareddiff и др
  • Разширяемост чрез скриптове;
  • Възможност за персонализиране.

6. KDiff3

KDiff3 е друг страхотен безплатен инструмент за сравнение на файлове за работната среда на KDE. Той е част от софтуерния пакет KDevelop и работи на всички платформи, включително Windows и MacOS. Можете да сравните два linux файла за два или три или дори да сравнявате директории. Ето основните характеристики:

  • Показване на разликите ред по ред и знак по знак;
  • Поддръжка за автоматично обединяване;
  • Обработване на конфликти при сливане;
  • Поддръжка на Unicode;
  • Разлики в дисплея;
  • Поддръжка за ръчно подравняване.

констатации

В тази статия разгледахме как се сравняват linux файловете с помощта на терминала, как да създавате пачове, а също така направихме малък преглед на най-добрите помощни програми за сравнение на графични файлове. Какви инструменти за сравнение използвате? Пишете в коментарите!

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

В тази статия ще разгледаме как се сравняват файловете на Linux. Ще анализираме най-полезните методи, както за терминала, така и в графичен режим. Нека първо да разгледаме как да сравним linux файл с помощта на помощната програма diff.

  • Сравняване на diff файлове

    Помощната програма linux diff е програма, която работи в конзолен режим. Синтаксисът му е много прост. Обадете се на помощната програма, предайте необходимите файлове и задайте опции, ако е необходимо:

    $ опции за разлика файл1 файл2

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

    • -q- показва само разликите във файловете;
    • - извеждат само съвпадащи части;
    • - показване на необходимия брой линии след съвпадения;
    • -u- показва само необходимия брой редове след разликите;
    • - извеждане в две колони;
    • - извеждане във формат ed скрипт;
    • - извеждане във формат RCS;
    • - сравняване на файлове като текстови файлове, дори и да не са текстови файлове;
    • - заменете разделите с интервали в изхода;
    • - разделяне на страници и добавяне на поддръжка за пейджинг;
    • -r- рекурсивно сравнение на папки;
    • -i- игнориране на регистъра;
    • - игнорирайте промените в разделите;
    • -Z- игнорирайте интервалите в края на реда;
    • - игнорирайте интервалите;
    • - Игнорирайте празните редове.

    Това бяха основните опции на помощната програма, сега нека да разгледаме как да сравним Linux файлове. В изхода на помощната програма, освен директно показване на промените, тя показва ред, в който е посочено в кой ред и какво е направено. За това се използват следните символи:

    • а- добавено;
    • д- премахнати;
    • ° С- променено.

    Освен това линиите, които се различават, ще бъдат обозначени със символа<, а те, которые совпадают - символом >.

    Ето съдържанието на нашите тестови файлове:

    Сега нека направим сравнение на diff файлове:
    $ diff файл1 файл2

    В резултат на това получаваме реда: 2.3c2.4. Това означава, че редове 2 и 3 са променени. Можете да използвате опции за игнориране на главни и малки букви:
    $ diff -i файл1 файл2

    Можете да изведете в две колони:
    $ diff -y файл1 файл2

    А с опцията -u можете да създадете кръпка, която след това може да бъде приложена към същия файл от друг потребител:
    $ diff -u файл1 файл2

    За да обработите няколко файла в папка, е удобно да използвате опцията -r:
    $ diff -r ~/tmp1 ~/tmp2

    За удобство можете да пренасочите изхода на помощната програма директно към файл:
    $ diff -u файл1 файл2 > файл.кръпка

    Както можете да видите, всичко е много просто. Но не е много удобно. По-приятно е да използвате графични инструменти.

    Сравнение на Linux файлове с помощта на GUI

    Има няколко страхотни инструмента за сравняване на файлове в linux в GUI. Можете лесно да разберете как да ги използвате. Нека разгледаме няколко от тях:

    1. Сравнете

    Kompare е графична помощна програма за разлика, която ви позволява да намирате разлики във файловете, както и да ги обедините. Написано на Qt и предназначено основно за KDE. Ето основните му характеристики:

  • Поддръжка за множество различни формати;
  • Поддръжка за сравняване на linux файл и директории;
  • Поддръжка за преглед на diff файлове;
  • Персонализиран интерфейс;
  • Създаване и прилагане на корекции към файлове.

2. Diff Merge

DiffMerge е междуплатформена програма за сравняване и обединяване на файлове. Позволява ви да сравнявате два или три файла. Поддържа редактиране на ред в движение.

особености:

  • Поддръжка за сравнение на директории;
  • Интеграция с преглед на файлове;
  • Възможност за персонализиране.

3. Мелд

Това е лек инструмент за сравняване и сливане на файлове. Позволява ви да сравнявате файлове, директории и да изпълнявате функциите на система за контрол на версиите. Програмата е предназначена за разработчици и има следните функции:

  • Сравнение на два и три файла;
  • Използване на персонализирани типове и думи;
  • Автоматичен режим на сливане и действия с текстови страни;
  • Поддръжка за Git, Mercurial, Subversion, Bazar и др.

4. Дифузна

Diffuse е друг популярен и доста прост инструмент за сравняване и сливане на файлове. Написано е на Python. Поддържат се две основни функции - сравнение на файлове и версия. Можете да редактирате файлове, докато ги гледате. Основни функции:

  • Подчертаване на синтаксиса;
  • Клавишни комбинации за лесна навигация;
  • Поддръжка за неограничен брой отмяна;
  • Поддръжка на Unicode;
  • Поддръжка за Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK и Monotone.

5.XXдиф

XXdiff е безплатен и много мощен инструмент за сравнение и сливане на файлове. Но програмата има няколко недостатъка. Това е липсата на поддръжка на Unicode и редактиране на файлове.

особености:

  • Плитко или рекурсивно сравнение на един или два файла и директории;
  • Осветяване на различията;
  • Интерактивна асоциация;
  • Поддръжка за външни инструменти за разлика като GNU Diff, SIG Diff, Cleareddiff и др
  • Разширяемост чрез скриптове;
  • Възможност за персонализиране.

6. KDiff3

KDiff3 е друг страхотен безплатен инструмент за сравнение на файлове за работната среда на KDE. Той е част от софтуерния пакет KDevelop и работи на всички платформи, включително Windows и MacOS. Можете да сравните два linux файла за два или три или дори да сравнявате директории. Ето основните характеристики:

  • Показване на разликите ред по ред и знак по знак;
  • Поддръжка за автоматично обединяване;
  • Обработване на конфликти при сливане;
  • Поддръжка на Unicode;
  • Разлики в дисплея;
  • Поддръжка за ръчно подравняване.
Дял