File Comparison (Diff) Verktyg för Linux
Programmerare, webbutvecklare och till och med författare behöver ofta jämföra olika versioner av samma kod eller text för att hålla reda på förändringar. Ett effektivt sätt att göra detta är med ett diff-verktyg - en applikation som jämför filer eller mappar, visar skillnader mellan dem och hjälper dig att skapa en ny fil genom att slå samman eller klistra in sina versioner. I allmänhet kan du jämföra filer på Linux antingen med ett kommandoradsverktyg eller med en fristående applikation.
Diff, colordiff och wdiff
Diff
Kommandoradsverktyget kallas diff
är en del av "diffutils" -paketet som finns i förråd av alla större Linux-distributioner. Det är ett enkelt verktyg som jämför filer linje för rad och kan också jämföra filer i två mappar. Om de valda filerna är identiska, kommer diff inte att skriva ut någon utmatning, och du kan anpassa dess alternativ (till exempel att ignorera det vita mellanslaget eller brevfallet).
Den allmänna syntaxen är
diff-optionion filnamn1 filnamn2
Resultaten kan visas i två kolumner med alternativet -y
eller - --side-by-side
. Hämta hela listan med diff-alternativ genom att skriva:
diff -help
Paketet "diffutils" innehåller också diff3
- ett verktyg som kan jämföra tre filer och slå samman tre versioner av en fil. En bra guide för att få ut det mesta av diff finns på den officiella hemsidan.
colordiff
Colordiff är tekniskt ett "wrapper" eller ett manus som ändrar diffusens utdata genom att färglägga det enligt dina önskemål i konfigurationsfilen ("/ etc / colordiffrc" eller "/home/user/.colordiffrc"). Colordiff-paketet är tillgängligt i förråd av de flesta distributioner.
Colordiff har samma alternativ som diff, och du kan använda den antingen direkt genom att skriva:
colordiff-optionsar filename1.txt filnamn2.txt
eller genom att leda utmatningen från diff till den:
diff -u filnamn1.txt filnamn2.txt | colordiff
wdiff
Ett annat liknande och lite mer specialiserat verktyg är wdiff
som kan jämföra filer ord per ord (det definierar ett ord som allt omgivet av vitt utrymme). Wdiff kan ignorera fallet ( -i
), ge statistik ( -s
) om ändringar i givna filer och betona skillnader med formatering ( -p
). Du kan också kombinera colordiff och wdiff för att få en färgkodad översikt över ordskillnader mellan filer:
wdiff -n filnamn1.txt filnamn2.txt | colordiff
Observera att du måste ange hela sökvägen om filer inte finns i den aktiva mappen. För mer information om wdiff, besök den officiella hemsidan.
Diff lägen i Vim och Emacs
Populära textredigerare Vim och Emacs har båda ett inbyggt diff-läge. För att aktivera det i Vim kan du starta programmet med kommandot vimdiff
och lägga till upp till fyra filer för att jämföra:
vimdiff file1 file2 [file3 [file4]]
Vim öppnar varje fil i ett separat fönster och belyser skillnaderna. Du kan konfigurera hur du delar upp varje fönster för en bättre översikt.
Emacs-användare kan välja mellan en diff-förlängning (kallad "huvudläge") eller Ediff, ett något mer avancerat läge som gör att du kan ändra jämförda filer interaktivt. På samma sätt som i Vim kan Emacs visa filer i separata fönster, sida vid sida och markera skillnaderna. Du kan också använda den för att slå samman filer, och det fungerar också med komprimerade filer.
Båda textredigerarna har relativt komplex syntax som kräver lite lärande, men det lönar sig eftersom de är mycket kraftfulla och grundligt anpassningsbara.
KDiff3
Kdiff3 är en grafisk frontend att diff, vilket innebär att den bygger på diff och erbjuder alla sina alternativ. Den låter dig jämföra två filer till en basfil och slå samman, dela och gå med hela mappar, filer eller bara valda delar av texten. Kdiff3 integreras bra med KDE (stöder Dolphin service menyer), men det kommer att fungera på alla Linux-distributioner, Windows och Mac OS X. Dialogrutan Inställningar -> Konfigurera Kdiff3 kan du ställa in parametrar för filjämförelse i mappar (datum, storlek, binär jämförelse eller fullständigt innehåll) och mellan filer (ignorera fall, siffror och vitt utrymme). Du kan växla ordförpackning och radnummer för bättre översikt och justera färginställningar för att markera skillnaderna.
Det fantastiska med Kdiff3 är att det låter dig klistra in text från en fil direkt i huvudfönstret, vilket eliminerar behovet av att skapa filer när du bara vill jämföra texten "on-the-fly". En detaljerad Kdiff3-handbok finns tillgänglig online.
Diffus
Vid första anblicken verkar det enkelt, men Diffuse är lika kraftfull som andra verktyg på den här listan. Det kan jämföra ett obegränsat antal filer i en sida vid sida och sammanfatta skillnaderna. Du kan redigera filer direkt från Diffuse och utföra sammanslagningar och linjeöverensstämmelse. Den stöder också (begränsad) syntaxmarkering och erbjuder integration med flera versionsstyrningssystem - inklusive Git, Mercurial och Subversion - för att hjälpa dig att hålla filer synkroniserade. Diffusa verk på Linux, Windows och Mac OS X, och du kan ladda ner installationspaketet från projektets webbplats.
DiffMerge
Den här applikationen fungerar på Linux, Windows och OS X, integreras bra med Utforskaren i Windows och erbjuder installationspaket för vissa distributioner. Du kan redigera filer inom Diffmerge, automatiskt sammanfoga filversioner och exportera skillnader till en ny fil. Det kan jämföra upp till tre filer och två mappar och visa om filerna är identiska, vilket kan vara användbart när du kontrollerar om en rsync-säkerhetskopiering utfördes korrekt.
I dialogrutan Inställningar kan du definiera anpassade regler för hantering av olika filtyper. Diffmerge är gratis, men det kommer ibland att begära en betald registreringsnyckel. Detta kan avvärja vissa användare. Lyckligtvis kan de välja ett annat verktyg från den här listan eftersom de alla erbjuder mer eller mindre samma alternativ.
meld
Meld packar funktioner från andra diffverktyg till ett Python-byggt gränssnitt. Du kan ladda ner källan och Windows-versionen och hitta paketet i förråd om du är en Ubuntu, Fedora eller SUSE-användare. En cool sak om Meld är att du inte behöver installera den - kör bara körbar och använd den som en bärbar app.
Meld stöder filredigering, filtrering med regelbundna uttryck, jämförelse och sammanslagning av tre filer och jämförelse av två eller tre mappar och deras innehåll, och ger också användbar visualisering av skillnader med pilar och färgkodning. Om du använder ett versionsstyrningssystem som Git, Mercurial eller SVN, kan Meld hantera dina filer, söka efter ändringar och utföra förpliktelser och uppdateringar. Meld uppdateras regelbundet, så vi kan hoppas på nya funktioner i framtida versioner.
Andra alternativ
Om du inte känner för att installera en ny applikation för detta ändamål och du inte behöver avancerade funktioner för jämförelse av filer, kan du prova några av de många online diffverktygen som är gratis och bara kräver en webbläsare.
Använder du ett diff-verktyg som inte finns på den här listan? Berätta om det i kommentarerna.
Bildkredit: Teaser bildkälla