Zoeken op website

10 beste hulpmiddelen voor bestandsvergelijking en verschil (Diff) in Linux


Tijdens het schrijven van programmabestanden of normale tekstbestanden willen programmeurs en schrijvers soms het verschil weten tussen twee bestanden of twee versies van hetzelfde bestand.

Wanneer je twee computerbestanden op Linux vergelijkt, wordt het verschil tussen hun inhoud een diff genoemd. Deze beschrijving is ontstaan uit een verwijzing naar de uitvoer van diff, het bekende Unix-hulpprogramma voor het vergelijken van bestanden op de opdrachtregel.

Er zijn verschillende tools voor bestandsvergelijking die je op Linux kunt gebruiken, en in deze recensie zullen we enkele van de beste terminalgebaseerde en GUI-diff-tools bekijken waarvan je kunt profiteren bij het schrijven van code of andere tekstbestanden.

1. diff-opdracht

Ik begin graag met het originele Unix-opdrachtregelprogramma dat je het verschil tussen twee computerbestanden laat zien. Diff is eenvoudig en gemakkelijk te gebruiken. Het is vooraf geïnstalleerd op de meeste Linux-distributies en vergelijkt bestanden regel voor regel en geeft het verschil daartussen weer.

Om twee bestanden te vergelijken en de verschillen weer te geven.

diff file1.txt file2.txt

U kunt de handmatige invoer voor diff bekijken om deze eenvoudig te gebruiken.

man diff

Er zijn enkele wrappers voor de diff tool die de functionaliteit ervan verbeteren, waaronder:

colordiff-opdracht

Colordiff is een Perl-script dat dezelfde uitvoer produceert als diff, maar met accentuering van kleur en syntaxis. Het heeft aanpasbare kleurenschema's.

Je kunt Colordiff op je Linux-systemen installeren met behulp van de standaardpakketbeheertools genaamd yum, dnf en apt-get of apt zoals weergegeven.

sudo apt install colordiff         [On Debian, Ubuntu and Mint]
sudo yum install colordiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/colordiff  [On Gentoo Linux]
sudo apk add colordiff             [On Alpine Linux]
sudo pacman -S colordiff           [On Arch Linux]
sudo zypper install colordiff      [On OpenSUSE]    

Om mappen recursief te vergelijken.

colordiff file1.txt file2.txt

U kunt de handmatige invoer voor colordiff bekijken, zoals weergegeven.

man colordiff

wdiff-opdracht

Het hulpprogramma wdiff is een front-end voor diff commando dat wordt gebruikt om bestanden woord voor woord te vergelijken. Dit programma is erg handig bij het vergelijken van twee teksten met gewijzigde woorden en waarvoor paragrafen zijn bijgevuld.

Om wdiff op je Linux-systemen te installeren, voer je het volgende uit:

sudo apt install wdiff         [On Debian, Ubuntu and Mint]
sudo yum install wdiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/wdiff  [On Gentoo Linux]
sudo apk add wdiff             [On Alpine Linux]
sudo pacman -S wdiff           [On Arch Linux]
sudo zypper install wdiff      [On OpenSUSE]    

Om de twee bestanden naast elkaar weer te geven, waarbij de verschillen op woordniveau worden benadrukt.

wdiff file1.txt file2.txt

Gebruik de wdiff handleiding voor het gebruik ervan op Linux.

man wdiff

2. Vimdiff-opdracht

Vimdiff werkt op een geavanceerde manier in vergelijking met het hulpprogramma diff, waarmee een gebruiker maximaal vier versies van een bestand kan bewerken en de verschillen kan laten zien. Wanneer je het uitvoert, opent Vimdiff twee of drie, of vier bestanden met behulp van de Vim-teksteditor.

Om vimdiff te gebruiken, moet Vim op uw systeem zijn geïnstalleerd, maar als dit niet is geïnstalleerd, kunt u het installeren met behulp van uw pakketbeheerder.

sudo apt install vim         [On Debian, Ubuntu and Mint]
sudo yum install vim         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim  [On Gentoo Linux]
sudo apk add vim             [On Alpine Linux]
sudo pacman -S vim           [On Arch Linux]
sudo zypper install vim      [On OpenSUSE]    

Om twee bestanden te vergelijken met vimdiff, voer je de volgende opdracht uit.

vimdiff file1.txt file2.txt

Je kunt vimdiff ook gebruiken om drie bestanden te vergelijken.

vimdiff file1.txt file2.txt file3.txt

Voor meer gedetailleerde informatie en gebruiksopties kunt u de handleidingpagina openen door te rennen.

man vimdiff

3. sdiff

De opdracht sdiff wordt gebruikt om twee bestanden naast elkaar te vergelijken, waarbij de verschillen ertussen worden benadrukt. Het toont de inhoud van de twee bestanden in afzonderlijke kolommen, met toegevoegde regels voorafgegaan door ">", verwijderde regels voorafgegaan door "<" en gemeenschappelijke regels weergegeven zonder voorvoegsels .

De opdracht sdiff wordt doorgaans meegeleverd met de standaardinstallatie van de meeste Linux-distributies. Als het echter niet is geïnstalleerd, kunt u het installeren met behulp van uw pakketbeheerder.

sudo apt install diffutils         [On Debian, Ubuntu and Mint]
sudo yum install diffutils         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffutils  [On Gentoo Linux]
sudo apk add diffutils             [On Alpine Linux]
sudo pacman -S diffutils           [On Arch Linux]
sudo zypper install diffutils      [On OpenSUSE]    

Om twee bestanden te vergelijken en de verschillen naast elkaar weer te geven.

sdiff file1.txt file2.txt

Nadat we naar de old-school diff tools hebben gekeken, gaan we snel naar enkele GUI diff tools die beschikbaar zijn op Linux.

4. Vergelijk

Kompare is een grafische tool voor het maken van verschillen en samenvoegen waarmee gebruikers de verschillen tussen bestanden kunnen vergelijken en bekijken, en deze ook kunnen samenvoegen.

Om Kompare op Linux-distributies te installeren, kunt u de pakketbeheerder gebruiken die specifiek is voor uw systeem.

sudo apt install kompare         [On Debian, Ubuntu and Mint]
sudo yum install kompare         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kompare  [On Gentoo Linux]
sudo apk add kompare             [On Alpine Linux]
sudo pacman -S kompare           [On Arch Linux]
sudo zypper install kompare      [On OpenSUSE]    

Enkele van de functies zijn onder meer:

  • Ondersteunt meerdere diff-formaten
  • Ondersteunt vergelijking van mappen
  • Ondersteunt het lezen van diff-bestanden
  • Aanpasbare interface
  • Patches maken en toepassen op bronbestanden

5. DiffMerge

DiffMerge is een platformonafhankelijke GUI-applicatie voor het vergelijken en samenvoegen van bestanden. Het heeft twee functionaliteitsengines, de Diff-engine die het verschil tussen twee bestanden laat zien, en intra-line accentuering en bewerking ondersteunt, en een Merge-engine die de gewijzigde regels tussen bestanden uitvoert. drie bestanden.

Het heeft de volgende kenmerken:

  • Ondersteunt directoryvergelijking
  • Integratie van bestandsbrowser
  • Zeer configureerbaar

6. Meld – Diff-tool

Meld is een lichtgewicht GUI-diff- en merge-tool, waarmee gebruikers bestanden, mappen en versiebeheerde programma's kunnen vergelijken. Het is speciaal gebouwd voor ontwikkelaars en wordt geleverd met de volgende functies:

  • Twee- en driewegvergelijking van bestanden en mappen
  • Update van bestandsvergelijking naarmate een gebruiker meer woorden typt
  • Maakt samenvoegingen eenvoudiger door gebruik te maken van de automatische samenvoegmodus en acties op gewijzigde blokken
  • Gemakkelijke vergelijkingen met behulp van visualisaties
  • Ondersteunt Git, Mercurial, Subversion, Bazaar en nog veel meer

Om Meld op Linux te installeren, kunt u uw pakketbeheerder gebruiken om het vanuit de officiële repository's te installeren.

sudo apt install meld         [On Debian, Ubuntu and Mint]
sudo yum install meld         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/meld  [On Gentoo Linux]
sudo apk add meld             [On Alpine Linux]
sudo pacman -S meld           [On Arch Linux]
sudo zypper install meld      [On OpenSUSE]    

7. Diffuus - GUI-diff-tool

Diffuse is een andere populaire, gratis, kleine en eenvoudige GUI-diff- en merge-tool die je op Linux kunt gebruiken. Het is geschreven in Python en biedt twee belangrijke functionaliteiten, namelijk: bestandsvergelijking en versiebeheer, waardoor bestandsbewerking en het samenvoegen van bestanden mogelijk zijn, en ook de verschillen tussen bestanden worden weergegeven.

Om Diffuse op Linux te installeren, kunt u uw pakketbeheerder gebruiken zoals weergegeven.

sudo apt install diffuse         [On Debian, Ubuntu and Mint]
sudo yum install diffuse         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffuse  [On Gentoo Linux]
sudo apk add diffuse             [On Alpine Linux]
sudo pacman -S diffuse           [On Arch Linux]
sudo zypper install diffuse      [On OpenSUSE]    

U kunt een vergelijkingssamenvatting bekijken, regels tekst in bestanden selecteren met behulp van een muisaanwijzer, regels in aangrenzende bestanden vergelijken en verschillende bestanden bewerken.

Andere kenmerken zijn onder meer:

  • Syntaxisaccentuering
  • Sneltoetsen voor eenvoudige navigatie
  • Ondersteunt onbeperkt ongedaan maken
  • Unicode-ondersteuning
  • Ondersteunt Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK en Monotone

8. XXdiff – Gereedschap voor verschillen en samenvoegen

XXdiff is een gratis, krachtige tool voor het vergelijken en samenvoegen van bestanden en mappen die draait op Unix-achtige besturingssystemen zoals Linux, Solaris, HP/UX, IRIX en DEC Tru64. Een beperking van XXdiff is het gebrek aan ondersteuning voor Unicode-bestanden en het inline bewerken van diff-bestanden.

Het heeft de volgende lijst met functies:

  • Ondiepe en recursieve vergelijking van twee, drie bestanden of twee mappen
  • Horizontale verschillen benadrukken
  • Interactief samenvoegen van bestanden en opslaan van de resulterende uitvoer
  • Ondersteunt samenvoegbeoordelingen/politie
  • Ondersteunt externe diff-tools zoals GNU diff, SIG diff, Cleareddiff en nog veel meer
  • Uitbreidbaar met behulp van scripts
  • Volledig aanpasbaar met behulp van bronbestanden plus vele andere kleine functies

9. KDiff3 – – Gereedschap Verschillen en samenvoegen

KDiff3 is nog zo'n cool, platformonafhankelijk hulpmiddel voor verschillen en samenvoegen, gemaakt door KDevelop, dat werkt op alle Unix-achtige platforms, inclusief Linux en Mac OS X, Windows.

Om KDiff3 op Linux te installeren, kunt u uw pakketbeheerder gebruiken zoals weergegeven.

sudo apt install kdiff3         [On Debian, Ubuntu and Mint]
sudo yum install kdiff3         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kdiff3  [On Gentoo Linux]
sudo apk add kdiff3             [On Alpine Linux]
sudo pacman -S kdiff3           [On Arch Linux]
sudo zypper install kdiff3      [On OpenSUSE]    

Het kan twee tot drie bestanden of mappen vergelijken of samenvoegen en heeft de volgende opvallende kenmerken:

  • Geeft verschillen regel voor regel en teken voor teken aan
  • Ondersteunt automatisch samenvoegen
  • Ingebouwde editor om samenvoegconflicten op te lossen
  • Ondersteunt Unicode, UTF-8 en vele andere codecs
  • Maakt afdrukken van verschillen mogelijk
  • Ondersteuning voor Windows Explorer-integratie
  • Ondersteunt ook automatische detectie via byte-order-mark “BOM”
  • Ondersteunt handmatige uitlijning van lijnen
  • Intuïtieve GUI en nog veel meer

10. TkVerschil

TkDiff is ook een platformonafhankelijke, eenvoudig te gebruiken GUI-wrapper voor de Unix diff-tool, die een zij-aan-zij weergave biedt van de verschillen tussen twee invoerbestanden. Het kan draaien op Linux, Windows en Mac OS X.

Daarnaast heeft het nog een aantal andere opwindende functies, waaronder diff-bladwijzers, een grafische kaart met verschillen voor gemakkelijke en snelle navigatie, en nog veel meer.

Om TkDiff op Linux te installeren, kunt u uw pakketbeheerder gebruiken zoals weergegeven.

sudo apt install tkdiff         [On Debian, Ubuntu and Mint]
sudo yum install tkdiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/tkdiff  [On Gentoo Linux]
sudo apk add tkdiff             [On Alpine Linux]
sudo pacman -S tkdiff           [On Arch Linux]
sudo zypper install tkdiff      [On OpenSUSE]    
Conclusie

Na het lezen van deze recensie van enkele van de beste hulpprogramma's voor het vergelijken en samenvoegen van bestanden en mappen, wil je er waarschijnlijk een aantal uitproberen.

Dit zijn misschien niet de enige diff-tools die beschikbaar zijn op Linux, maar het is bekend dat ze enkele van de beste functies bieden. Misschien wil je ons ook op de hoogte stellen van andere diff-tools die je hebt getest en waarvan je denkt dat ze die verdienen tot de beste worden gerekend.