Сравнение на файлове (Diff) Инструменти за Linux
Програмистите, уеб програмистите и дори писателите често трябва да сравняват различни версии на същия код или текст, за да следят промените. Ефективен начин да направите това е с инструмент за разглеждане - приложение, което сравнява файлове или папки, показва разлики между тях и ви помага да създадете нов файл, като слеете или променяте версиите му. Като цяло, можете да сравнявате файлове на Linux с инструмент за командния ред или със самостоятелно приложение.
Разлики, цветове и уиф
Diff
Помощната програма за команден ред, наречена diff
е част от пакета "diffutils", който се намира в хранилищата на всяка основна Linux дистрибуция. Това е прост инструмент, който сравнява файловете по ред и може да сравнява файлове в две папки. Ако избраните файлове са идентични, diff няма да отпечатва изход и можете да промените опциите му (например, за да пренебрегнете бялото или писмото).
Общият синтаксис е
diff -option име на файл1 име_на_ файл2
Резултатите могат да бъдат показани в две колони с опция -y
или --side-by-side
. Получете пълен списък с опциите за раздаване, като въведете:
diff -help
Пакетът "diffutils" също съдържа diff3
- инструмент, който може да сравни три файла и да обедини три версии на файл. Страхотно ръководство за максимално използване на разликата може да се намери на официалния уебсайт.
Colordiff
Colordiff е технически "обвивка" или скрипт, който променя изхода на diff, като го оцветява според предпочитанията ви в конфигурационния файл ("/ etc / colordiffrc" или "/home/user/.colordiffrc"). Пакетът "colordiff" е наличен в хранилищата на повечето дистрибуции.
Colordiff има същите опции като diff и можете да го използвате или директно, като напишете:
colordiff - избира filename1.txt filename2.txt
или чрез тръбопровода на изхода на diff към него:
diff -u filename1.txt име на файла2.txt | colordiff
Wdiff
Друг подобен и малко по-специализиран инструмент е wdiff
който може да сравнява думите дума на дума (тя дефинира дума като нещо, заобиколено от бяло пространство). Wdiff може да пренебрегне случая ( -i
), да предостави статистика ( -s
) за промените в дадени файлове и да подчертае различията при форматирането ( -p
). Можете също да комбинирате colordiff и wdiff, за да получите цветен кодиран общ преглед на разликите в думите между файловете:
wdiff -n filename1.txt име на файл2.txt | colordiff
Обърнете внимание, че трябва да въведете пълния път, ако файловете не са в активната папка. За да научите повече за wdiff, посетете официалния уебсайт.
Различни режими във Vim и Emacs
Популярни текстови редактори Vim и Emacs имат вграден режим на дифузия. За да го активирате във Vim, можете да стартирате програмата с командата vimdiff
и да добавите до четири файла за сравнение:
vimdiff файл1 файл2 [файл3 [файл4]]
Vim отваря всеки файл в отделен прозорец и подчертава разликите. Можете да конфигурирате как да разделите всеки прозорец за по-добър преглед.
Потребителите на Emacs могат да избират между разширение на разликата (наречено "основен режим") или Ediff - малко по-напреднал режим, който ви позволява да променяте интерактивно сравняваните файлове. Подобно на Vim, Emacs може да показва файлове в отделни прозорци една до друга и да подчертава разликите. Можете също да го използвате, за да обедините файлове и работи и с компресирани файлове.
И двата текстови редактора имат относително сложен синтаксис, който изисква известно обучение, но се отплаща, тъй като те са много мощни и напълно персонализируеми.
Kdiff3
Kdiff3 е графичен интерфейс за диф, което означава, че разчита на diff и предлага всички опции. Той ви позволява да сравнявате два файла с основен файл и да слеете, разделяте и съединявате цели папки, файлове или само избрани части от текста. Kdiff3 се интегрира добре с KDE (поддържа сервизните менюта на Dolphin), но ще работи на всички Linux дистрибуции, Windows и Mac OS X. Диалоговият прозорец Settings -> Configure Kdiff3 ви позволява да зададете параметри за сравнение на файлове в папки (по дата, размер, двоично сравнение или пълно съдържание) и между файловете (игнориране на случая, номера и бяло пространство). За по-добър преглед можете да превключвате номера за обвиване на думи и линии и да настроите настройките на цветовете, за да отбележите разликите.
Голямото нещо за Kdiff3 е, че ви позволява да поставяте текст от всеки файл директно в главния прозорец, премахвайки необходимостта от създаване на файлове, когато искате да сравнявате текст "в движение". Наличен е подробен наръчник за Kdiff3.
Дифузната
На пръв поглед изглежда просто, но Diffuse е също толкова мощен, колкото другите инструменти в този списък. Той може да сравни неограничен брой файлове в изглед едно до друго и да обобщи разликите. Можете да редактирате файлове директно от Diffuse и да изпълните сливания и съответствие на линиите. Той също така поддържа (ограничено) открояване на синтаксис и предлага интеграция с няколко системи за управление на версии - включително Git, Mercurial и Subversion - за да ви помогне да поддържате синхронизираните файлове. Дифузните работи на Linux, Windows и Mac OS X и можете да изтеглите инсталационните пакети от уеб сайта на проекта.
Diffmerge
Това приложение работи на Linux, Windows и OS X, интегрира се добре с Windows Explorer и предлага инсталационни пакети за някои дистрибуции. Можете да редактирате файлове в Diffmerge, автоматично да обедините версиите на файловете и да експортирате разликите в нов файл. Той може да сравни до три файла и две папки и да покаже дали файловете са идентични, което може да се окаже полезно при проверка дали гръцкият архив е изпълнен правилно.
Диалоговият прозорец за настройки ви позволява да дефинирате персонализирани правила за работа с различни типове файлове. Разликата е безплатна, но понякога ще поиска платен регистрационен ключ. Това може да отклони някои потребители; за щастие, те могат да изберат друг инструмент от този списък, тъй като те предлагат повече или по-малко едни и същи варианти.
обявявам
Meld обединява функции от други инструменти за различаване в интерфейс, изграден от Python. Можете да изтеглите източника и версията на Windows и да намерите пакета в хранилищата, ако сте потребител на Ubuntu, Fedora или SUSE. Хладно нещо за Meld е, че не е нужно да го инсталирате - просто стартирайте го и го използвайте като преносимо приложение.
Meld поддържа редактиране на файлове, филтриране с регулярни изрази, сравняване и сливане на три файла и сравняване на две или три папки и тяхното съдържание, както и полезно визуализиране на разликите чрез използване на стрелки и цветово кодиране. Ако използвате система за управление на версии като Git, Mercurial или SVN, Meld може да управлява вашите файлове, да проверява за промени и да изпълнява ангажименти и актуализации. Meld се актуализира редовно, за да можем да се надяваме на нови функции в бъдещите версии.
Други възможности
Ако не искате да инсталирате ново приложение за тази цел и не се нуждаете от допълнителни функции за сравняване на файлове, можете да опитате някои от многото онлайн инструменти за дифузия, които са безплатни и изискват само уеб браузър.
Използвате ли различен инструмент, който не е в този списък? Разкажете ни за това в коментарите.
Кредит на изображението: източник на изображение от тийзър