10 parasta tiedostojen vertailu- ja erotyökalua Linuxissa


Kirjoittaessaan ohjelmatiedostoja tai tavallisia tekstitiedostoja ohjelmoijat ja kirjoittajat haluavat joskus tietää eron kahden tiedoston tai saman tiedoston kahden version välillä.

Kun vertaat kahta tietokonetiedostoa Linuxissa, niiden sisällön välistä eroa kutsutaan eroksi. Tämä kuvaus syntyi viittauksesta diff:n, tunnetun Unix-komentorivitiedostojen vertailuapuohjelman, ulostuloon.

On olemassa useita tiedostojen vertailutyökaluja, joita voit käyttää Linuxissa, ja tässä katsauksessa tarkastelemme joitain parhaista päätepohjaisista ja GUI-diff-työkaluista, joita voit hyödyntää kirjoittaessasi koodia tai muita tekstitiedostoja.

1. diff Komento

Haluan aloittaa alkuperäisellä Unix-komentorivityökalulla, joka näyttää eron kahden tietokonetiedoston välillä. Diff on yksinkertainen ja helppokäyttöinen, se on esiasennettu useimpiin Linux-jakeluihin, mikä vertaa tiedostoja rivi riviltä ja tulostaa niiden välisen eron.

Vertaa kahta tiedostoa ja näyttää erot.

diff file1.txt file2.txt

Voit tarkistaa diff manuaalisen merkinnän käyttääksesi sitä helposti.

man diff

diff-työkalulle on olemassa joitakin kääreitä, jotka parantavat sen toimintoja. Näitä ovat mm.

colordiff-komento

Colordiff on Perl-skripti, joka tuottaa saman tulosteen kuin diff, mutta väri- ja syntaksinkorostuksilla. Siinä on muokattavissa olevat värimaailmat.

Voit asentaa Colordiffin Linux-järjestelmiisi käyttämällä oletusarvoisia paketinhallintatyökaluja nimeltä yum, dnf ja apt-get tai apt kuvan mukaisesti.

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]    

Vertaa hakemistoja rekursiivisesti.

colordiff file1.txt file2.txt

Voit tarkistaa colordiff-kohdan manuaalisen merkinnän kuvan mukaisesti.

man colordiff

wdiff-komento

wdiff-apuohjelma on käyttöliittymän diff-komento, jota käytetään tiedostojen vertaamiseen sana sanalta. Tämä ohjelma on erittäin hyödyllinen vertailtaessa kahta tekstiä muuttuneiden sanojen osalta ja joiden kappaleet on täytetty uudelleen.

Asenna wdiff Linux-järjestelmiisi suorittamalla:

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]    

Voit näyttää kaksi tiedostoa vierekkäin korostamalla sanatason eroja.

wdiff file1.txt file2.txt

Käytä wdiff-opasta sen käyttämiseen Linuxissa.

man wdiff

2. Vimdiff-komento

Vimdiff toimii edistyneellä tavalla verrattuna diff-apuohjelmaan, jonka avulla käyttäjä voi muokata jopa neljää versiota tiedostosta ja näyttää niiden erot. Kun suoritat sen, Vimdiff avaa kaksi, kolme tai neljä tiedostoa Vim-tekstieditorilla.

Jotta voit käyttää vimdiffiä, Vim on oltava asennettuna järjestelmääsi, mutta jos sitä ei ole asennettu, voit asentaa sen paketinhallinnan avulla.

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]    

Jos haluat verrata kahta tiedostoa vimdiffillä, suorita seuraava komento.

vimdiff file1.txt file2.txt

Voit myös vertailla kolmea tiedostoa vimdiffillä.

vimdiff file1.txt file2.txt file3.txt

Tarkempia tietoja ja käyttövaihtoehtoja varten pääset käsikirjasivulle suorittamalla.

man vimdiff

3. sdiff

sdiff-komentoa käytetään kahden tiedoston vertaamiseen vierekkäin ja korostaa niiden välisiä eroja. Se näyttää kahden tiedoston sisällön erillisissä sarakkeissa lisättyjen rivien etuliitteellä ">", poistetuilla riveillä "<" ja yhteisillä riveillä ilman etuliitteitä. .

sdiff-komento tulee yleensä useimpien Linux-jakelujen vakioasennuksen mukana. Jos sitä ei kuitenkaan ole asennettu, voit asentaa sen paketinhallinnan avulla.

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]    

Voit vertailla kahta tiedostoa ja näyttää erot vierekkäin.

sdiff file1.txt file2.txt

Tutustuttuamme vanhan koulukunnan diff-työkaluihin, siirrytään nopeasti joihinkin Linuxissa saatavilla oleviin GUI-diff-työkaluihin.

4. Vertaa

Kompare on graafinen erotus- ja yhdistämistyökalu, jonka avulla käyttäjät voivat vertailla ja tarkastella tiedostojen välisiä eroja sekä yhdistää niitä.

Voit asentaa Komparen Linux-jakeluihin käyttämällä järjestelmäkohtaista paketinhallintaa.

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]    

Joitakin sen ominaisuuksia ovat:

  • Tukee useita diff-muotoja
  • Tukee hakemistojen vertailua
  • Tukee diff-tiedostojen lukemista
  • Mukautettava käyttöliittymä
  • Korjausten luominen ja asentaminen lähdetiedostoihin

5. Erota yhdistäminen

DiffMerge on monialustainen GUI-sovellus tiedostojen vertailuun ja yhdistämiseen. Siinä on kaksi toimintomoottoria, Diff-moottori, joka näyttää eron kahden tiedoston välillä ja tukee rivin sisäistä korostusta ja muokkausta, sekä Yhdistä-moottori, joka tulostaa muuttuneet rivit kolme tiedostoa.

Siinä on seuraavat ominaisuudet:

  • Tukee hakemistojen vertailua
  • Tiedostoselaimen integrointi
  • Erittäin konfiguroitavissa

6. Meld – Diff Tool

Meld on kevyt graafisen käyttöliittymän erotus- ja yhdistämistyökalu, jonka avulla käyttäjät voivat vertailla tiedostoja, hakemistoja sekä versioohjattuja ohjelmia. Se on suunniteltu erityisesti kehittäjille, ja siinä on seuraavat ominaisuudet:

  • Kaksisuuntainen ja kolmisuuntainen tiedostojen ja hakemistojen vertailu
  • Tiedostojen vertailun päivitys, kun käyttäjä kirjoittaa enemmän sanoja
  • Helpottaa yhdistämistä käyttämällä automaattista yhdistämistilaa ja toimintoja muutetuissa lohkoissa
  • Helppoja vertailuja visualisoinneilla
  • Tukee Gitiä, Mercurialia, Subversionia, Bazaaria ja monia muita

Jos haluat asentaa Meldin Linuxiin, voit asentaa sen virallisista tietovarastoista paketinhallinnan avulla.

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 on toinen suosittu, ilmainen, pieni ja yksinkertainen graafisen käyttöliittymän erotus- ja yhdistämistyökalu, jota voit käyttää Linuxissa. Pythonilla kirjoitettu se tarjoaa kaksi päätoimintoa, eli tiedostojen vertailun ja versionhallinnan, sallien tiedostojen muokkauksen ja tiedostojen yhdistämisen sekä tulostaa tiedostojen väliset erot.

Asenna Diffuse Linuxiin käyttämällä paketinhallintaasi kuvan osoittamalla tavalla.

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]    

Voit tarkastella vertailuyhteenvetoa, valita tiedostojen tekstirivejä hiiren osoittimella, sovittaa rivejä vierekkäisiin tiedostoihin ja muokata erilaisia tiedostoja.

Muita ominaisuuksia ovat:

  • Syntaksin korostus
  • Pikanäppäimet helpottavat navigointia
  • Tukee rajoittamatonta kumoamista
  • Unicode-tuki
  • Tukee Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK ja Monotone

8. XXdiff – Erotus- ja yhdistämistyökalu

XXdiff on ilmainen, tehokas tiedostojen ja hakemistojen vertailu- ja yhdistämistyökalu, joka toimii Unixin kaltaisissa käyttöjärjestelmissä, kuten Linux, Solaris, HP/UX, IRIX ja DEC Tru64. Yksi XXdiffin rajoituksista on, että se ei tue Unicode-tiedostoja ja diff-tiedostojen muokkausta.

Siinä on seuraava luettelo ominaisuuksista:

  • Kahden, kolmen tiedoston tai kahden hakemiston matala ja rekursiivinen vertailu
  • Vaakasuora eron korostus
  • Interaktiivinen tiedostojen yhdistäminen ja tuloksena olevien tulosteiden tallentaminen
  • Tukee yhdistämistarkastuksia/poliisia
  • Tukee ulkoisia erotustyökaluja, kuten GNU diff, SIG diff, Cleareddiff ja monia muita
  • Laajennettavissa skripteillä
  • Täysin muokattavissa käyttämällä resurssitiedostoja ja monia muita pieniä ominaisuuksia

9. KDiff3 – – Erotus- ja yhdistämistyökalu

KDiff3 on jälleen yksi hieno, eri alustojen välinen erotus- ja yhdistämistyökalu, joka on valmistettu KDevelopista ja joka toimii kaikilla Unix-tyyppisillä alustoilla, mukaan lukien Linux ja Mac OS X, Windows.

Voit asentaa KDiff3:n Linuxiin käyttämällä paketinhallintaasi kuvan osoittamalla tavalla.

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]    

Se voi verrata tai yhdistää kahta tai kolmea tiedostoa tai hakemistoa, ja sillä on seuraavat huomionarvoiset ominaisuudet:

  • Ilmaisee erot rivi riviltä ja merkki merkiltä
  • Tukee automaattista yhdistämistä
  • Sisäänrakennettu editori, joka käsittelee yhdistämis-konfliktit
  • Tukee Unicode-, UTF-8- ja monia muita koodekkeja
  • Mahdollistaa erojen tulostamisen
  • Windows Explorerin integrointituki
  • Tukee myös automaattista tunnistusta byte-order-merkin "BOM" kautta
  • Tukee viivojen manuaalista kohdistusta
  • Intuitiivinen käyttöliittymä ja paljon muuta

10. TkDiff

TkDiff on myös monialustainen, helppokäyttöinen GUI-kääre Unix-diff-työkalulle, joka tarjoaa vierekkäisen näkymän kahden syöttötiedoston eroista. Se voi toimia Linuxissa, Windowsissa ja Mac OS X:ssä.

Lisäksi siinä on joitain muita jännittäviä ominaisuuksia, kuten eri kirjanmerkit, graafinen kartta eroista helppoa ja nopeaa navigointia varten sekä monia muita.

Asenna TkDiff Linuxiin käyttämällä paketinhallintaasi kuvan osoittamalla tavalla.

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]    
Johtopäätös

Kun olet lukenut tämän katsauksen joistakin parhaista tiedostojen ja hakemistojen vertailu- ja yhdistämistyökaluista, haluat todennäköisesti kokeilla joitain niistä.

Nämä eivät ehkä ole ainoita käytettävissä olevia erotustyökaluja Linuxissa, mutta niiden tiedetään tarjoavan joitakin parhaista ominaisuuksista. Voit myös kertoa meille kaikista muista erotustyökaluista, joita olet testannut ja joiden uskot ansaitsevan mainita parhaiden joukossa.