10 beste verktøy for filsammenligning og forskjell (diff) i Linux


Mens du skriver programfiler eller vanlige tekstfiler, ønsker programmerere og forfattere noen ganger å vite forskjellen mellom to filer eller to versjoner av samme fil.

Når du sammenligner to datafiler på Linux, kalles forskjellen mellom innholdet en diff. Denne beskrivelsen ble født ut fra en referanse til utdataene til diff, det velkjente Unix-kommandolinjefilsammenligningsverktøyet.

Det er flere filsammenligningsverktøy du kan bruke på Linux, og i denne anmeldelsen skal vi se på noen av de beste terminalbaserte og GUI diff-verktøyene du kan dra nytte av mens du skriver kode eller andre tekstfiler.

1. diff Kommando

Jeg liker å starte med det originale Unix-kommandolinjeverktøyet som viser deg forskjellen mellom to datafiler. Diff er enkel og lett å bruke, den kommer forhåndsinstallert på de fleste Linux-distribusjoner, som sammenligner filer linje for linje og viser forskjellen mellom dem.

For å sammenligne to filer og vise forskjellene.

diff file1.txt file2.txt

Du kan sjekke den manuelle oppføringen for diff for å enkelt bruke den.

man diff

Det er noen omslag for diff-verktøyet som forbedrer funksjonaliteten, og disse inkluderer:

colordiff kommando

Colordiff er et Perl-skript som produserer samme utdata som diff, men med farge- og syntaksutheving. Den har tilpassbare fargevalg.

Du kan installere Colordiff på Linux-systemene dine ved å bruke standard pakkebehandlingsverktøy kalt yum, dnf og apt-get eller apt som vist.

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]    

For å sammenligne kataloger rekursivt.

colordiff file1.txt file2.txt

Du kan sjekke den manuelle oppføringen for colordiff som vist.

man colordiff

wdiff kommando

Verktøyet wdiff er en grensesnitt til diff-kommando som brukes til å sammenligne filer på ord-for-ord-basis. Dette programmet er veldig nyttig når du skal sammenligne to tekster for endrede ord og for hvilke avsnitt som er fylt ut.

For å installere wdiff på Linux-systemene dine, kjør:

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]    

For å vise de to filene side ved side, fremhev forskjellene på ordnivå.

wdiff file1.txt file2.txt

Bruk håndboken wdiff for hvordan du bruker den på Linux.

man wdiff

2. Vimdiff-kommando

Vimdiff fungerer på en avansert måte sammenlignet med diff-verktøyet, som lar en bruker redigere opptil fire versjoner av en fil mens de viser forskjellene deres. Når du kjører det, åpner Vimdiff to eller tre eller fire filer ved hjelp av Vim-tekstredigereren.

For å bruke vimdiff, må du ha Vim installert på systemet ditt, men hvis det ikke er installert, kan du installere det ved å bruke pakkebehandlingen.

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]    

For å sammenligne to filer med vimdiff, utfører du følgende kommando.

vimdiff file1.txt file2.txt

Du kan også bruke vimdiff for å sammenligne tre filer.

vimdiff file1.txt file2.txt file3.txt

For mer detaljert informasjon og bruksalternativer kan du få tilgang til manualsiden ved å kjøre.

man vimdiff

3. sdiff

Kommandoen sdiff brukes til å sammenligne to filer side ved side, og fremhever forskjellene mellom dem. Den viser innholdet i de to filene i separate kolonner, med lagt til linjer prefiksert med ">", slettede linjer prefiks med "<", og vanlige linjer vist uten noen prefikser .

Kommandoen sdiff kommer vanligvis med standardinstallasjonen av de fleste Linux-distribusjoner. Men hvis den ikke er installert, kan du installere den ved å bruke pakkebehandlingen.

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]    

For å sammenligne to filer og vise forskjellene side ved side.

sdiff file1.txt file2.txt

Etter å ha sett på de gamle diff-verktøyene, la oss raskt gå til noen GUI diff-verktøy som er tilgjengelige på Linux.

4. Kompare

Kompare er et grafisk diff- og fletteverktøy som lar brukere sammenligne og se forskjeller mellom filer og også slå dem sammen.

For å installere Kompare på Linux-distribusjoner, kan du bruke pakkebehandlingen som er spesifikk for systemet ditt.

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]    

Noen av funksjonene inkluderer:

  • Støtter flere diff-formater
  • Støtter sammenligning av kataloger
  • Støtter lesing av diff-filer
  • Tilpassbart grensesnitt
  • Opprette og bruke patcher til kildefiler

5. DiffMerge

DiffMerge er en GUI-applikasjon på tvers av plattformer for å sammenligne og slå sammen filer. Den har to funksjonalitetsmotorer, Diff-motoren som viser forskjellen mellom to filer, og støtter utheving og redigering av linjer, og en Merge-motor som sender ut de endrede linjene mellom tre filer.

Den har følgende funksjoner:

  • Støtter katalogsammenligning
  • Filnettleserintegrasjon
  • Svært konfigurerbar

6. Meld – Diff Tool

Meld er et lett GUI-diff- og sammenslåingsverktøy, som gjør det mulig for brukere å sammenligne filer, kataloger og versjonskontrollerte programmer. Den er bygget spesielt for utviklere og har følgende funksjoner:

  • Toveis og treveis sammenligning av filer og kataloger
  • Oppdatering av filsammenligning ettersom en bruker skriver inn flere ord
  • Gjør sammenslåinger enklere ved å bruke automatisk sammenslåingsmodus og handlinger på endrede blokker
  • Enkel sammenligning ved hjelp av visualiseringer
  • Støtter Git, Mercurial, Subversion, Bazaar pluss mange flere

For å installere Meld på Linux, kan du bruke pakkebehandleren til å installere den fra de offisielle depotene.

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. Diffuse – GUI Diff Tool

Diffuse er et annet populært, gratis, lite og enkelt GUI-diff- og fletteverktøy som du kan bruke på Linux. Skrevet i Python, tilbyr den to hovedfunksjoner, det vil si: filsammenligning og versjonskontroll, som tillater filredigering og sammenslåing av filer, og gir også ut forskjellen mellom filer.

For å installere Diffuse på Linux, kan du bruke pakkebehandlingen som vist.

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]    

Du kan se et sammenligningssammendrag, velge tekstlinjer i filer ved hjelp av en musepeker, matche linjer i tilstøtende filer og redigere forskjellige filer.

Andre funksjoner inkluderer:

  • Syntaksutheving
  • Tastatursnarveier for enkel navigering
  • Støtter ubegrenset angre
  • Unicode-støtte
  • Støtter Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK og Monotone

8. XXdiff – Diff and Merge Tool

XXdiff er et gratis, kraftig fil- og katalogkomparator- og sammenslåingsverktøy som kjører på Unix-lignende operativsystemer som Linux, Solaris, HP/UX, IRIX og DEC Tru64. En begrensning ved XXdiff er mangelen på støtte for Unicode-filer og inline-redigering av diff-filer.

Den har følgende liste over funksjoner:

  • Grunn og rekursiv sammenligning av to, tre filer eller to kataloger
  • Horisontal forskjellsutheving
  • Interaktiv sammenslåing av filer og lagring av resulterende utdata
  • Støtter sammenslåingsanmeldelser/politiarbeid
  • Støtter eksterne diff-verktøy som GNU diff, SIG diff, Cleareddiff og mange flere
  • Kan utvides ved hjelp av skript
  • Fullt tilpassbar ved hjelp av ressursfiler pluss mange andre mindre funksjoner

9. KDiff3 – – Diff and Merge Tool

KDiff3 er nok et kult diff- og sammenslåingsverktøy på tvers av plattformer laget av KDevelop, som fungerer på alle Unix-lignende plattformer, inkludert Linux og Mac OS X, Windows.

For å installere KDiff3 på Linux, kan du bruke pakkebehandlingen som vist.

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]    

Den kan sammenligne eller slå sammen to til tre filer eller kataloger og har følgende bemerkelsesverdige funksjoner:

  • Indikerer forskjeller linje for linje og tegn for tegn
  • Støtter automatisk sammenslåing
  • Innebygd editor for å håndtere sammenslåingskonflikter
  • Støtter Unicode, UTF-8 og mange andre kodeker
  • Tillater utskrift av forskjeller
  • Støtte for integrering av Windows Explorer
  • Støtter også automatisk gjenkjenning via byte-ordre-mark "BOM"
  • Støtter manuell justering av linjer
  • Intuitivt GUI og mange flere

10. TkDiff

TkDiff er også en brukervennlig GUI-innpakning på tvers av plattformer for Unix diff-verktøyet, som gir en side-ved-side-visning av forskjellene mellom to inngangsfiler. Den kan kjøres på Linux, Windows og Mac OS X.

I tillegg har den noen andre spennende funksjoner, inkludert diff-bokmerker, et grafisk kart over forskjeller for enkel og rask navigering pluss mange flere.

For å installere TkDiff på Linux, kan du bruke pakkebehandlingen som vist.

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]    
Konklusjon

Etter å ha lest denne anmeldelsen av noen av de beste fil- og katalogkomparator- og sammenslåingsverktøyene, vil du sannsynligvis prøve noen av dem.

Dette er kanskje ikke de eneste diff-verktøyene du kan finne på Linux, men de er kjent for å tilby noen av de beste funksjonene, det kan også være lurt å gi oss beskjed om andre diff-verktøy der ute som du har testet og synes fortjener å nevnes blant de beste.